Intertechno ITM-100 Kontakt Homegear und OpenHab


#1

Ich möchte den Interechno Funktmagnetkontakt (ITM-100) in OpenHAB integrieren. Nach erfolglosen Versuchen diesen direkt an OpenHAB anzubinden probiere ich jetzt den Weg über Homegear. Ich verwende den CUL 433 um die Signale des Kontakts zu empfangen. In Homegear konnte ich den den Kontakt erfolgreich einbinden:

homgear -r
> families select 16
(Family)> ls
      ID │ Name                      │ Serial Number │  Address │     Type │ Type Description                            
─────────┼───────────────────────────┼───────────────┼──────────┼──────────┼───────────────────────────────────────────────
         │                           │               │          │          │
       1 │                           │   ITD00000201 │ 00000201 │   000001 │ Intertechno Switch                          

Wenn ich den Fensterkontakt öffene und schließe sehe ich entsprechende Signale im Logfile:

tail /var/log/homegear/homegear.log

01/27/17 18:43:23.072 Intertechno packet received from 00000201 (RSSI: -72 dBm): FF
01/27/17 18:43:25.029 Intertechno packet received from 00000201 (RSSI: -73 dBm): F0

Nun habe ich homegear als binding in openhab konfiguriert:

openhab/runtime/configurations/openhab.cfg

homematic:host=127.0.0.1
homematic:callback.host=127.0.0.1

Und in der Items Konfiguration registriert:

openhab/runtime/configurations/items/default.items

Contact Fenster1_Dach_Wohnzimmer "Fenster Links [%s]" (Dach_Wohnzimmer) { homematic="address=ITD00000201, channel=1, parameter=STATE" }

Im openhab.log wird das Contact Item korrekt erkannt.

21:19:47.935 [DEBUG] [i.internal.GenericItemProvider:154  ] - Processing binding configs for items from model 'default.items'
21:19:47.937 [DEBUG] [omematicGenericBindingProvider:63   ] - Adding item Fenster1_Dach_Wohnzimmer with DatapointConfig[address=ITD00000201,channel=1,parameter=STATE]
21:19:47.938 [DEBUG] [i.internal.GenericItemProvider:133  ] - Read items from model 'default.items'
21:19:50.939 [DEBUG] [.h.i.c.s.AbstractTypeConverter:105  ] - Converting (Boolean) value 'false' with OpenClosedTypeConverter for HmDatapoint[address=ITD00000201,channel=1,parameter=STATE]
21:19:50.940 [INFO ] [runtime.busevents             :26   ] - Fenster1_Dach_Wohnzimmer state updated to OPEN

Die Events vom Fensterkontakt kommen jedoch nicht bei OpenHAB an. Weder im openhab.log noch im event.log sehe ich entsprechende Einträge. Hat jemand eine Idee?


#2

Hallo @Loidt,

die Pakete werden von Homegear zwar empfangen aber nicht verarbeitet. Das liegt vermutlich daran, dass als Gerätetyp “Switch”, also ein Schaltaktor ausgewählt wurde. Wähle ale Gerätetyp stattdessen “0x10” (1-Tasten-Fernbedienung). Dann sollte es klappen.

Viele Grüße

Sathya


#3

Hallo Sathya,

Ich habe den Gerätetyp jetzt entsprechend geändert:

(Family)> ls
      ID │ Name                      │ Serial Number │  Address │     Type │ Type Description                             
─────────┼───────────────────────────┼───────────────┼──────────┼──────────┼───────────────────────────────────────────────
         │                           │               │          │          │ 
       3 │                           │   ITD00000201 │ 00000201 │   000010 │ Intertechno 1-channel Remote                 
─────────┴───────────────────────────┴───────────────┴──────────┴──────────┴───────────────────────────────────────────────

Leider kommen dennoch keine Events in OpenHAB an. Ich habe auch in der items.cfg den Eintrag von Contact auf Swich geändert.

openhab/runtime/configurations/items/default.items

Contact Fenster1_Dach_Wohnzimmer "Fenster Links [%s]" (Dach_Wohnzimmer) { homematic="address=ITD00000201, channel=1, parameter=STATE" }

Hierbei ändert sich die Darstellung im Web UI doch auf Events reagiert das Item auch als Switch nicht.

Viele Grüße

Loidt


#4

Was sagt dann das Homegear-Log beim Tastendruck?


#5

Wenn ich den Fensterkontakt 3x schließe und wieder öffne, sieht das folgendermaßen im Logfile aus:

03/19/17 11:42:56.844 Intertechno packet received from 00000201 (RSSI: -74 dBm): FF
03/19/17 11:42:58.661 Intertechno packet received from 00000201 (RSSI: -74 dBm): F0
03/19/17 11:42:59.922 Intertechno packet received from 00000201 (RSSI: -74 dBm): FF
03/19/17 11:43:00.439 Intertechno packet received from 00000201 (RSSI: -74 dBm): F0
03/19/17 11:43:05.436 Intertechno packet received from 00000201 (RSSI: -74 dBm): FF
03/19/17 11:43:06.881 Intertechno packet received from 00000201 (RSSI: -74 dBm): F0

#6

Hey @Loidt,

tut mir leid für die späte Antwort. Das sieht doch perfekt aus :smile:! Das Problem ist vermutlich der Gerätetyp - da habe ich nicht aufgepasst. “0x10” ist für Fernbedienungen nach dem neuen IT-Standard. Deine arbeitet aber noch mit dem alten. Der Gerätetyp ist “0x33”. Klappt es damit? Ich selbst besitze leider keine Fernbedienung nach dem alten Standard zum Testen…

Viele Grüße

Sathya


#7

Hallo Sathya,

leider auch kein Erfolg. Der Code für den Fensterkontakt wird über einen Drehschalter am Gerät eingestellt wie im FHEM Wiki [1] beschrieben. Im Gegensatz zu dem abgebildeten Gerät ist bei mir aber nur ein Drehschalter auf dem sowohl Buchstaben als auch Zahlen abgebildet sind.

Anbei die Einstellungen und Logfiles:

Homegear -r

(Family)> ls
      ID │ Name                      │ Serial Number │  Address │     Type │ Type Description                             
─────────┼───────────────────────────┼───────────────┼──────────┼──────────┼───────────────────────────────────────────────
         │                           │               │          │          │ 
       3 │                           │   ITD00000201 │ 00000201 │   000033 │ Original Intertechno Remote                  
─────────┴───────────────────────────┴───────────────┴──────────┴──────────┴───────────────────────────────────────────────

/var/log/homegear/homegear.log

03/31/17 15:26:58.406 Starting Homegear...
03/31/17 15:26:58.406 Homegear version 0.6.17-902
[...]
03/31/17 15:27:00.871 Info: Loading family module mod_intertechno.so
03/31/17 15:27:01.051 /etc/homegear/families/intertechno.conf
[...]
03/31/17 15:27:02.395 Loading XML RPC devices...
03/31/17 15:27:02.642 Loading device 1
03/31/17 15:27:02.661 Module Intertechno: Loading Intertechno peer 3
03/31/17 15:27:02.685 Loading XML RPC devices...
03/31/17 15:27:02.774 Loading device 2
03/31/17 15:27:02.774 Start listening for packets...
03/31/17 15:27:02.775 Initializing RPC client...
[...]
03/31/17 15:27:03.132 Starting flows server...
03/31/17 15:27:03.133 Startup complete. Waiting for physical interfaces to connect.
03/31/17 15:27:03.133 All physical interfaces are connected now.
[...]
03/31/17 15:29:55.410 Info: Adding server "binary://127.0.0.1".
03/31/17 15:29:55.410 Info: Calling init methods on server "binary://127.0.0.1".
03/31/17 15:29:55.412 RPC Server (Port 2001): Info: Connection to client number 27 closed (3).
03/31/17 15:29:55.910 RPC client: Info: Calling RPC method "system.listMethods" on server binary://127.0.0.1.
03/31/17 15:30:14.143 Intertechno packet received from 00000201 (RSSI: -74 dBm): FF
03/31/17 15:30:15.218 Intertechno packet received from 00000201 (RSSI: -74 dBm): F0
03/31/17 15:30:15.735 Intertechno packet received from 00000201 (RSSI: -74 dBm): FF
03/31/17 15:30:16.346 Intertechno packet received from 00000201 (RSSI: -74 dBm): F0

openhab/runtime/logs/openhab.log

[...]
15:39:44.219 [INFO ] [c.internal.ModelRepositoryImpl:98   ] - Refreshing model 'wsf.items'
15:39:44.226 [DEBUG] [i.internal.GenericItemProvider:154  ] - Processing binding configs for items from model 'wsf.items'
15:39:44.227 [DEBUG] [omematicGenericBindingProvider:63   ] - Adding item Fenster1_Dach_Wohnzimmer with DatapointConfig[address=ITD00000201,channel=1,parameter=STATE]
15:39:44.230 [DEBUG] [i.internal.GenericItemProvider:133  ] - Read items from model 'wsf.items'
15:39:47.229 [DEBUG] [.h.i.c.s.AbstractTypeConverter:105  ] - Converting (Boolean) value 'false' with OnOffTypeConverter for HmDatapoint[address=ITD00000201,channel=1,parameter=STATE]
15:39:47.230 [INFO ] [runtime.busevents             :26   ] - Fenster1_Dach_Wohnzimmer state updated to OFF
[...]
15:51:20.166 [INFO ] [o.o.b.h.i.bus.HomematicBinding:193  ] - No event since 840 seconds, refreshing Homematic server connections
15:51:20.166 [INFO ] [.b.h.i.c.HomematicCommunicator:130  ] - Shutting down Homematic communicator
15:51:20.167 [DEBUG] [b.h.i.c.s.BinRpcCallbackServer:55   ] - Shutting down BinRpcCallbackServer
15:51:20.168 [DEBUG] [b.h.i.c.s.BinRpcNetworkService:69   ] - Shutting down BinRpcNetworkService
15:51:20.172 [DEBUG] [.h.i.communicator.ItemDisabler:63   ] - Stopping ItemDisabler
15:51:20.172 [INFO ] [.b.h.i.c.HomematicCommunicator:74   ] - Starting Homematic communicator
15:51:20.173 [DEBUG] [.h.i.communicator.ItemDisabler:54   ] - Starting ItemDisabler
15:51:20.176 [INFO ] [.b.h.i.c.HomematicCommunicator:84   ] - Homematic ServerId[name=Homegear,version=0.6.17-902]
15:51:20.177 [INFO ] [.b.h.i.c.client.HomegearClient:59   ] - Starting HomegearClient
15:51:20.177 [DEBUG] [.o.b.h.i.c.client.BinRpcClient:44   ] - Starting BinRpcClient
15:51:20.178 [INFO ] [b.h.i.communicator.StateHolder:83   ] - Loading Homematic datapoints
15:51:20.194 [INFO ] [b.h.i.communicator.StateHolder:91   ] - Finished loading 7 Homematic datapoints
15:51:20.195 [INFO ] [b.h.i.communicator.StateHolder:187  ] - Loading Homematic Server variables
15:51:20.198 [INFO ] [b.h.i.communicator.StateHolder:196  ] - Finished loading 0 Homematic server variables
15:51:20.199 [INFO ] [b.h.i.c.s.BinRpcCallbackServer:44   ] - Starting BinRpcCallbackServer at port 9123
15:51:20.203 [INFO ] [.b.h.i.c.HomematicCommunicator:114  ] - Scheduling one datapoint reload job in one minute

openhap/configurations/items/wsf.items

//Contact Fenster1_Dach_Wohnzimmer "Fenster Links [%s]" (Dach_Wohnzimmer) { homematic="address=ITD00000201, channel=1, parameter=STATE" } Switch Fenster1_Dach_Wohnzimmer "Fenster Links [%s]" (Dach_Wohnzimmer) { homematic="address=ITD00000201, channel=1, parameter=STATE" }

Im OpenHab logfile sieht man das falls das Item als Switch konfiguriet ist, der Status initial gesetzt wird. Auf Events vom Kontakt reagiert OpenHab jedoch nicht. Ich kann gerne auch erweitertes Logging in Homegear aktivieren.

Ich habe jetzt eine alternative Lösung mit einem HomeMatic Gerät laufen, sodass diese Lösung für mich nicht mehr so dringend ist. Gerne kann ich jedoch beim Debugging unterstützen, falls es interessant ist. Im Netz findet man so gut wie garnichts in Bezug auf den ITM-100 und CUL, Homegear, OpenHAB. Offensichtlich verwenden die meisten Anwender andere Devices. Es kann also sein, dass dieses Device einfach nicht unterstützt wird.

[1] https://wiki.fhem.de/wiki/Intertechno_Code_Berechnung#Hauscode_.28die_ersten_vier_Stellen_.280-3.29


#8

Da die Pakete geloggt werden, muss es auch zum Laufen zu bekommen sein. Die geloggten Pakete sehen jetzt auch gut aus (FF und F0 entsprechen auch dem korrekten Zustand). Ich schaue gleich mal im Quelltext woran es liegen könnte, dass die Pakete nicht dem Gerät zugeordnet werden.

Viele Grüße

Sathya


#9

Hallo @Loidt,

nimm statt der Adresse 0x0201 mal die Adresse 0x80. Klappt es damit? Falls ja, erkläre ich, warum.

Viele Grüße

Sathya

Nachtrag: Könntest du mir für die Doku auch schreiben, was um den Drehschalter steht?
Nachtrag 2: Die Adressen, welche für das Anlegen der Geräte verwendet werden können, werden ab dem nächsten Nightly geloggt. Das sollte die ansonsten mühsame Ermittlung der Adresse deutlich erleichtern.


#10

Hallo Sathya,

ich habe es so eingestellt wie von Dir beschrieben.

(Family)> ls
      ID │ Name                      │ Serial Number │  Address │     Type │ Type Description                             
─────────┼───────────────────────────┼───────────────┼──────────┼──────────┼───────────────────────────────────────────────
         │                           │               │          │          │ 
       3 │                           │   ITD00000080 │ 00000080 │   000033 │ Original Intertechno Remote                  
─────────┴───────────────────────────┴───────────────┴──────────┴──────────┴───────────────────────────────────────────────

Neben dem Empfang der Device Events sieht man jetzt auch, das das richtige Device in Homegear angesprochen wird:

/var/log/homegear/homegear.log

04/01/17 20:24:03.536 Intertechno packet received from 00000201 (RSSI: -73 dBm): FF
04/01/17 20:24:03.536 RPC client: Info: Calling RPC method "system.multicall" on server 127.0.0.1.
04/01/17 20:24:03.536 Module Intertechno: Info: STATE on channel 1 of peer 3 with serial number ITD00000080 was set to 0x01.
04/01/17 20:24:03.538 RPC client: Info: Calling RPC method "system.multicall" on server 127.0.0.1.
04/01/17 20:24:06.224 Intertechno packet received from 00000201 (RSSI: -73 dBm): F0
04/01/17 20:24:06.224 Module Intertechno: Info: STATE on channel 1 of peer 3 with serial number ITD00000080 was set to 0x00.
04/01/17 20:24:06.224 RPC client: Info: Calling RPC method "system.multicall" on server 127.0.0.1.

Die Events kommen jetzt auch in OpenHAB an:

20:25:01.978 [DEBUG] [.b.h.i.c.HomematicCommunicator:174  ] - Received new (Integer) value '-183' for DatapointConfig[address=ITD00000080,channel=0,parameter=RSSI_DEVICE]
20:25:01.980 [DEBUG] [.b.h.i.c.HomematicCommunicator:174  ] - Received new (Boolean) value 'true' for DatapointConfig[address=ITD00000080,channel=1,parameter=STATE]
20:25:01.981 [DEBUG] [.h.i.c.s.AbstractTypeConverter:105  ] - Converting (Boolean) value 'true' with OpenClosedTypeConverter for HmDatapoint[address=ITD00000080,channel=1,parameter=STATE]
20:25:01.982 [INFO ] [runtime.busevents             :26   ] - Fenster1_Dach_Wohnzimmer state updated to CLOSED
20:25:03.470 [DEBUG] [.b.h.i.c.HomematicCommunicator:174  ] - Received new (Boolean) value 'false' for DatapointConfig[address=ITD00000080,channel=1,parameter=STATE]
20:25:03.471 [DEBUG] [.h.i.c.s.AbstractTypeConverter:105  ] - Converting (Boolean) value 'false' with OpenClosedTypeConverter for HmDatapoint[address=ITD00000080,channel=1,parameter=STATE]
20:25:03.473 [INFO ] [runtime.busevents             :26   ] - Fenster1_Dach_Wohnzimmer state updated to OPEN

In der items Konfiguration kann ich das Device als Contact oder Switch konfigurieren. Es funktioniert in beiden Fällen.

Anbei noch ein Bild von dem Kontaktsender und dem Drehschalter für die Gerätekodierung. Ich habe etwas am Kontrast gedreht und hoffe das die Zahlen und Buchstaben nun besser zu erkennen sind.

Melde Dich bitte einfach falls ich noch Infos liefern kann und vielen Dank für Deine Hilfe.

PS: Natürlich interessiert es mich noch was es mit der Änderung der Geräteadresse aufsich hat. Habe ich die Adresse falsch berechnet? Wie konntest Du die Adresse herausfinden ohne zu wissen, wie der Drehschalter eingestellt war? Wenn Du mal Zeit hast kannst Du ja ein paar Zeilen dazu schreiben. Danke schon einmal im Vorraus.


#11

Hallo Sathya,

ich habe mir die Anleitung für die Berechnung der Geräteadresse noch einmal angeschaut und habe meinen Fehler erkannt. Ich darf für die Berechnung der Adresse mit der das Gerät in Homegear konfiguriert wird nur den Hauscode + Gerätecode verwenden. Ich habe fälschlicherweise den Festwert (8-9 Stelle: 0F) mit angehängt. Im Logfile von Homegear wird die Geräteadresse von empfangen Events aber immer mit Festwert in Hex ausgegeben, also 10 Stellen Binär.

Ist das richtig?

Zudem kann man im Gegensatz zu dem im FHEM Wiki beschriebenen Gerät mit zwei Drehschaltern mit jeweils 16 Positionen bei meinem Gerät mit nur einem Drehschalter nicht 256 sondern nur 16 verschiedene Adressen einstellen. Die Codes sind aber die gleichen.

Der kleine Schalter links an meinem Gerät dreht den Code für geöffnet und geschlossen um. Zeigt der Schalter auf den leeren Kreis, dann steht FF für geschlossen und 0F für geöffnet. Bei vollem Kreis entsprechend andersherum.


#12

Hallo @Loidt,

klasse, dass es jetzt funktionierten. Vielen Dank für das Bild und vor allem deine Geduld beim Testen :smile:. Ich werde gleich mal eine Gerätebeschreibung für 1-Kanal-Sender anlegen.

Das steht ja so auch im Wiki. Von daher hast du alles richtig gemacht. Verwirrend ist die Abweichung zur Homegear-Dokumentation:

The address has 8 digits. The first 4 are the first 4 digits of your 10-digit code. The last 4 digits depend on the group code:

In Homegear hat die Adresse also 8 Bitstellen (der Festwert wird - wie du ja bereits gesehen hast - nicht benötigt). Also in deinem Fall “B” => F000 und Gruppe 1 => 0000. Macht “F0000000” => “0b10000000” => “0x80”.

Die Adresse, welche in Homegear angezeigt wird, ist das Paket ohne Payload. Nicht alles davon ist bei jedem Gerät Teil der Geräteadresse. Bei den alten IT-Fernbedienungen ist auch der Kanal (der Gruppencode) darin kodiert (wie auch beim ITM-100, auch, wenn dieser nur einen Kanal hat).

Um die Verwirrung zu reduzieren, werden für nicht angelernte Geräte jetzt die Adressen geloggt, welche für das Anlegen des Gerätes zu verwenden sind. Die Doku werde ich entsprechend anpassen.

Viele Grüße

Sathya


#13

Bin jetzt auch hier gelandet, um einen IT Bewegungsmelder einzubinden.
Leider habe ich keinen Plan, wie das Device definiert werden muss, bzw. warum ich keine Datei “intertechno.conf” nach der Instatllation finde.

Kann mir jemand Tipps zu Einrichtung geben ?


#14

Hast du denn das Intertechno Modul installiert?

Mach mal dpkg -l | grep homegear und poste die Ausgabe.


#15

Hallo,

etwas spät, aber hier dieAusgabe:

[10:23:29] openhabian@openHABianPi:~$ dpkg -l | grep homegear
ii homegear 0.7.30-1900 armhf Interface program to your smart home devices
ii homegear-homematicbidcos 0.7.30-1900 armhf HomeMatic BidCoS module for Homegear
ii homegear-homematicwired 0.7.30-1900 armhf HomeMatic BidCoS module for Homegear
ii libhomegear-base 0.7.30-1900 armhf Base library for Homegear
ii libhomegear-ipc 0.1.2-15 armhf IPC library for Homegear
ii libhomegear-node 0.1.7-25 armhf Node library for Homegear
[10:25:40] openhabian@openHABianPi:~$

Installation scheint i.O.

Das ist die Ausgabe der Codes vom Intertechno Bewegungsmelder.
Der CUL433 funktioniert hier mit minicom:
i66A6656A55555556EA

[10:32:19] openhabian@openHABianPi:~/cul_scripts$ python cul_decode_itv3.py i66A6656A55555556EA
The string to enter in your serial terminal is:
is01011101010001110000000000000001
The id of your remote control is:
01011101010001110000000000
The group flag is:
0
Your device was set to:
0
The group code is:
0001

Komme gerade nicht weiter …


#16

Hm… ich selbst habe kein Intertechno, aber die Installation scheint mir nicht in Ordnung. Du hast das intertechno-Modul für homegear nicht installiert.
Dein Testscript hat ja nichts mit homegear zu tun :wink:

apt install homegear-intertechno und dann der Konfiguration hier folgen: https://doc.homegear.eu/data/homegear-intertechno/


#17

Danke, hat tatsächlich die Installation gefehlt, jetzt ist auch die intertechno.conf da.

Da ich schonmal mit einem “Intertechno”-Binding in OH 2 Steckdosen geschaltet hatte und hier 38400 Baud funktionierten, werde ich das mir dieser Baudrate testen.

Leider komme ich mit der Konfiguration wie beschrieben “5.1.4. Adding the Switching Actuator” nicht weiter …

pc My-CUL 1 1751C00 -> Unknown physical interface.

The id of your remote control is:
01011101010001110000000000 -> 0x1751C00


#18

pc My-CUL 1 1751C00 -> Unknown physical interface.

Du hast in deiner intertechno.conf für den Punkt id einen Wert festegelegt. Diesen Wert musst du in deinem pc (peer create) anstatt von “My-CUL” einsetzen. Außerdem musst du 1751C00 in dezimal umrechnen. Wäre dann 24452096

Dein Befehl sollte so lauten:

pc ID-aus-intertechno.conf 1 24452096

#19

Ich weiss nicht welchen Wert ich für “den Punkt ID” festlegen soll …

Und dann kann ich nur EIN Gerät nutzen ? Eine ID in der Intertechno.conf ?


#20

Magst du dich bitte ein wenig einlesen? Und natürlich kannst du mehr als ein Gerät steuern.

Poste bitte auch mal alle nicht auskommentierten Zeilen deiner intertechno.conf. Wichtig ist, dass der Bereich mit den eckigen Klammern [] auch einkommentiert ist:

Was die einzelnen Werte in der Config bedeuten steht oben drüber. Als id kannst du gerne die Voreinstellung nehmen oder sowas wie mein-toller-433-cul. Diese id musst du dann mit pc nutzen, damit homegear weiß welches Geräte es für die Kommunikation mit deinem “device” (intertechno id) nehmen soll.

Da hast du übrigens einens Bindestrich vergessen bzw das “IT”, sofern du id nicht geändert hast. Der default-name ist My-IT-CUL-1… und damit macht dann auch die Fehlermeldung oben Sinn :wink: