# Fhem

# FHEM Installation

[https://wiki.fhem.de/wiki/Erste\_Schritte\_in\_FHEM](https://wiki.fhem.de/wiki/Erste_Schritte_in_FHEM)

## Back to the roots

Mit Fhem hat alles begonnen. Dann wollen wir mal zurück zu den basics.

<p class="callout info">[Tutorial](https://www.youtube.com/watch?v=ISZbmGJJUjU&list=PLcXIjZgo0R3CyA42uH6oOlHCEohL4EZTB)</p>

#### Installation auf Raspberry 

Raspberry ist eingerichtet, Zugriff über SSH

##### Nötige Programme installieren 

```
sudo apt-get -f install && sudo apt-get update && sudo apt-get -y install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl libdbd-sqlite3-perl libtext-diff-perl libxml-simple-perl libcgi-pm-perl libjson-perl sqlite3
```

##### Aktuelles Fhem laden 

```
wget http://fhem.de/fhem-6.3.deb
```

Hier natürlich darauf achten, dass die aktuelle Version verwendet wird.

Aktuelleste Version[ hier ](https://fhem.de/#Download)zu finden

##### Aktuelle Fhem installieren

```
sudo dpkg -i fhem-5.8.deb
```

##### Berechtigungen setzen 

```
cd /opt && sudo chmod -R a+w fhem && sudo usermod -a -G tty pi && sudo usermod -a -G tty fhem

```

Nun ist Fhem über die IP-Adresse und den Port 8083 erreichbar

#### Fhem Update

```
update

shutdown restart
```

## Fhem Schreibschutz aufheben

Wenn du vertraut mit der FHEM Konfigurationsdatei bist und weisst was du tust, kannst du den Schreibschutz aufheben indem du das Attribute *editConfig auf 1 setzt.*

Am einfachsten kannst du das editConfig Attribut auf 1 setzen wenn du diesen Befehl

```
attr WEB editConfig 1
```

oben in das Befehls-Textfeld ein gibst und ENTER drückst.

# Eltako mit Fhem verbinden

##### Links zu Doku

[https://wiki.fhem.de/wiki/EnOcean\_Starter\_Guide](https://wiki.fhem.de/wiki/EnOcean_Starter_Guide)

## Benötigte Hardware

- Raspberry Pi mit FHEM
- Eltako FAM14
- Eltako FGW14
- Eltako Aktoren z.B. FSR14

## Konfiguration

### FGW14 einbinden

```perl
# Konfiguration der seriellen Schnittstelle:
#
# Drehschalter des FGW14 auf Pos 6 = 57600 Baud
#
define TCM_ESP2 TCM ESP2 /dev/ttyUSB@57600
attr TCM_ESP2 comType RS485
attr TCM_ESP2 alias Eltako FGW14
attr TCM_ESP2 verbose 3
```

Startet man FHEM nach dem Speichern der Konfigurationsänderungen neu sollte man  
das fhem.log kontrollieren.  
Dort findet man nun folgende Einträge:

```perl
2014.04.02 08:43:08 3: Opening TCM120 device /dev/ttyS3
2014.04.02 08:43:08 3: Setting TCM120 baudrate to 57600
2014.04.02 08:43:08 3: TCM120 device opened
2014.04.02 08:43:08 1: get baseID: Bogus answer received: 000000001520C5A55A8B0550000000000000023012
```

Die dritte Zeile signalisiert, dass erfolgreich eine Verbindung zum FGW14 hergestellt  
werden konnte. Anschliessend versucht FHEM die BaseID des vermeintlichen  
TCM120 Moduls abzufragen  
Da es sich bei einem FGW14 Modul um kein TCM120 Funkmodul mit eigener BaseId handelt  
kommt es zu obiger "Bogus answer received" Fehlermeldung.  
Diese ist nicht weiter tragisch und kann einfach ignoriert werden.  
  
Wenn in fhem.cfg folgendes Attribut gesetzt wurde

```perl
attr global autoload_undefined_devices 1
```

Dann erzeugt FHEM automatisch neue Einträge in der fhem-Konfiguration,  
sobald von einem Sensor oder Aktor das erste Mal eine Nachricht auf dem RS485 Bus ausgetauscht wird.  
Befindet sich der obere Drehschalter des FAM14 in Position 4 erhält FHEM über das FGW14 zyklisch  
Statusmeldungen von allen Aktoren am RS485 Bus.  
Auf Basis dieser Statusmeldungen erzeugt FHEM bereits Defines.  
Für ein FSR14-4x wird pro Kanal ein Konfiguration in der folgenden Form generiert:

```perl
define EnO_switch_00000007 EnOcean 00000007
attr EnO_switch_00000007 IODev TCM120
attr EnO_switch_00000007 room EnOcean
attr EnO_switch_00000007 subType switch
define FileLog_EnO_switch_00000007 FileLog ./log/EnO_switch_00000007-%Y.log EnO_switch_00000007
attr FileLog_EnO_switch_00000007 logtype text
attr FileLog_EnO_switch_00000007 room EnOcean
```

<span class="bbc_size">**Eltako RS485-Busaktoren mit FHEM ansteuern:**</span>  
  
Steuert man Enocean Aktoren auf dem herkömmlichen Weg über TCM120 oder TCM310 USB Adapter  
über Funk an, muss FHEM eine Absender ID aus dem Adressbereich des jeweiligen TCM USB-  
Adapters verwenden. Diese Einschränkung gilt nicht für die Kommunikation mit den  
Aktoren über den RS485 Bus. D.h., FHEM darf beliebige IDs verwenden, solange diese  
eindeutig sind.  
Möchte man mit einem FHEM-Webcmd Schalter einen Kanal eines FSR14-4x schalten, so muss  
die automatisch generierte Konfiguration für das FSR14-4x Relais angepasst werden.  
Dazu wird dem FHEM Schalter die frei gewählte ID 00100007 zugeordnet. Um die Übersicht  
über vergebene IDs zu behalten, sollte man diese systematisch vergeben: z.B.  
FHEM-ID= Aktor-ID+0x00100000.  
Nun müssen FHEM-ID und Aktor-ID einander zugeordnet werden. Dies erfolgt über ein  
Sub-Define innerhalb des FSR14 Defines mit dem subDef Attribut, dem man die FHEM-ID  
zuweist.  
Im folgenden Beispiel ist nun der FHEM-Schalter mit der ID 00100007 dem Aktor mit der  
ID 00000007 zugeordnet.

```perl
#
# LAMPE
#
# B0: Lampe an
# BI: Lampe aus
#

define EnO_switch_00000007 EnOcean 00000007
attr EnO_switch_00000007 IODev TCM120
attr EnO_switch_00000007 alias LAMPE
attr EnO_switch_00000007 event-on-change-reading state,buttons,channelA,channelB
attr EnO_switch_00000007 group Beleuchtung
attr EnO_switch_00000007 gwCmd switching
attr EnO_switch_00000007 icon light_outdoor
attr EnO_switch_00000007 room Garten
attr EnO_switch_00000007 subDef 00100007
attr EnO_switch_00000007 subType gateway
```

### Konfiguration der Aktoren

#### FSR-14

```
eep A5-38-08
gwCmd switching
subType gateway
subDef 00100004
```

#### FUD-14

```perl
eep 15-38-08
gwCmd dimming
subType gateway
model Eltako_TF
subDef 00100008
```

#### FSB-14 Rolladenaktor

```
manufID 00D
eep A5-3F-7F
subType manufProfile
model Eltako_FSB_ACK
```

### Konfiguration Eltako mit PCT14

hier müssen die jeweiligen Aktoren mit dem dazugehörigen subDef verbunden werden.

ID ist dabei das Subdef und Funktion entweder 51 oder 31 oder dementsprechend.

## Hardware-Konfiguration

Das FGW14 muss mit dem Bus verbunden sein. Und die Verbindung von Hold darf nicht vergessen werden.

# FHEM Eltako Konfig Übersicht

## SenderID-Tabelle

<table border="1" id="bkmrk-nr.%C2%A0-name-enocean-na" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col></colgroup><tbody><tr><td>Nr. </td><td>Name EnOcean</td><td>Nahme in FHEM</td><td>Hex (Sender-ID)</td><td>Zimmer</td></tr><tr><td>  
</td><td>FGW14</td><td>FGW14</td><td>  
</td><td>Technik</td></tr><tr><td>1</td><td>EnO\_</td><td>Licht</td><td>00100004</td><td>Esszimmer</td></tr><tr><td>  
</td><td>  
</td><td>  
</td><td>  
</td><td>  
</td></tr></tbody></table>

# Fhem Config

fhem.cfg

## Autocreate

```
define autocreate autocreate
```

Standardmaßig aktiv - Erstellt automatisch neue Einträge

# Modul erstellen