NanoCUL / Intertechno funktioniert nicht [gelöst]

Hallo zusammen, ich habe eine homegear Installation neu aufgesetzt und bin auch noch Neuling auf diesem Gebiet. Jetzt komme ich aber nicht weiter beim Ansteuern von Intertechno-Schaltern per nanoCUL.

Konkret habe ich eine Docker-instanz von homegear auf meinem Heim-Server laufen, der ich den nanoCUL durchgereicht habe. Ich habe das Gateway in homegear konfiguriert wie in der Anleitung beschrieben und auch peers erzeugt, die Adressen mit der Methode aus dem fhem Wiki berechnet.

Was mir aber nicht gelingen will: von Homegear aus die Funk-Schalter anzusprechen. Ich versuche es derzeit mit dem Consolen-Kommando dass ich hier im Forum gefunden habe

homegear -e rc '$hg->setValue(1, 1, "STATE", true);'

und bekomme in der log-Datei die Fehlermeldung

Module Intertechno: Intertechno CUL "nano-CUL-433": Warning: !!!Not!!! sending packet 00000000000000111000000111010111, because device is not open.

Könnt Ihr Euch darauf einen Reim machen?

LG
Rüdiger
P.S. Die komplette Konsolen-Session:

root@7cadabf79268:/#  usermod -aG dialout homegear 
root@7cadabf79268:/# homegear -r
Connected to Homegear (version 0.7.45-3101).

Please type >>help<< to list all available commands.
> fs 16
For a list of available family commands type >>help<<.
Family 16> ls
      ID │ Name                      │ Serial Number │  Address │     Type │ Type Description                             
─────────┼───────────────────────────┼───────────────┼──────────┼──────────┼───────────────────────────────────────────────
         │                           │               │          │          │ 
       1 │                           │   ITD00000E07 │ 00000E07 │   000001 │ Intertechno Switch                           
       2 │                           │   ITD00000E87 │ 00000E87 │   000001 │ Intertechno Switch                           
─────────┴───────────────────────────┴───────────────┴──────────┴──────────┴───────────────────────────────────────────────
Family 16> exit
root@7cadabf79268:/# homegear -e rc '$hg->setValue(1, 1, "STATE", true);'
root@7cadabf79268:/# cd /var/log/homegear
root@7cadabf79268:/var/log/homegear# tail homegear.log
09/20/20 20:48:34.159 Script Engine Server: Info: Connection accepted. Client number: 16
09/20/20 20:48:34.160 Script Engine Server: Info: Client with pid 7937 successfully registered.
09/20/20 20:48:34.160 Script Engine Server: Info: Script engine process successfully spawned. Process id is 7937. Client id is: 0.
09/20/20 20:48:34.160 Script Engine Server: Info: Starting script "/var/lib/homegear/scripts/inline.php" with id 1.
09/20/20 20:48:34.164 Module Intertechno: Info: STATE of peer 1 with serial number ITD00000E07:1 was set to 0x01.
09/20/20 20:48:34.164 Module Intertechno: Intertechno CUL "nano-CUL-433": Warning: !!!Not!!! sending packet 00000000000000111000000111010111, because device is not open.
09/20/20 20:48:34.165 Info: Script with id 1 finished with exit code 0
09/20/20 20:48:34.168 IPC Server: Info: Connection to IPC server's client number 4 closed.
09/20/20 20:49:12.340 IPC Server: Info: IPC client 4 removed.
09/20/20 20:49:13.682 IPC Server: Info: Client number 1 is calling RPC method: lifetick Parameters:
root@7cadabf79268:/var/log/homegear# homegear -e rc '$hg->setValue(1, 1, "STATE", false);'
root@7cadabf79268:/var/log/homegear# ^C
root@7cadabf79268:/var/log/homegear# tail homegear.log
09/20/20 20:51:33.970 IPC Server: Info: Connection accepted. Client number: 5, file descriptor ID: 17
09/20/20 20:51:33.971 IPC Server: Info: Client 5 successfully registered RPC method "cliOutput" (this method is registered by 1 client(s)).
09/20/20 20:51:33.972 IPC Server: Info: Client 5 successfully registered RPC method "cliOutput-5" (this method is registered by 1 client(s)).
09/20/20 20:51:33.973 Script Engine Server: Info: Starting script "/var/lib/homegear/scripts/inline.php" with id 2.
09/20/20 20:51:33.976 Module Intertechno: Info: STATE of peer 1 with serial number ITD00000E07:1 was set to 0x00.
09/20/20 20:51:33.976 Module Intertechno: Intertechno CUL "nano-CUL-433": Warning: !!!Not!!! sending packet 00000000000000111000000111000111, because device is not open.
09/20/20 20:51:33.978 Info: Script with id 2 finished with exit code 0
09/20/20 20:51:33.981 IPC Server: Info: Connection to IPC server's client number 5 closed.
09/20/20 20:52:12.554 IPC Server: Info: IPC client 5 removed.
09/20/20 20:52:13.918 IPC Server: Info: Client number 1 is calling RPC method: lifetick Parameters:

Hm, kenne mich mit Docker nicht aus aber was sagt denn ein ls -la des devices, dass du durchgereicht hast?
Und wie sieht der relevante Teil der config aus?

@pmayer, danke für die schnelle Antwort!
Das device sieht so aus:

root@7cadabf79268:/# ls -la /dev/tty*
crw-rw-rw- 1 root     root       5, 0 Sep 20 20:44 /dev/tty
crw-rw---- 1 homegear homegear 189, 3 Sep 20 20:44 /dev/ttyACM0
root@7cadabf79268:/#  

Beim “relevanten Teil” der Konfiguration stehe ich gerade noch auf dem Schlauch. Was genau wäre das, die intertechno.conf?
Die hat dort stehen:

[General]

moduleEnabled = true

#######################################
################# CUL #################
#######################################
#
# edited by Ruediger 20-9-2020 to enable nanoCUL
## The device family this interface is for
[CUL]

## Specify an unique id here to identify this device in Homegear
id = nano-CUL-433

## When default is set to "true" Homegear will assign this device
## to new peers.
default = true

deviceType = cul

device = /dev/ttyACM0

## Should be 57600 for the "official" CUL.
baudrate = 57600

Hey, das war genau was ich meinte… device und das Verzeichnis.

Kannst du mal ins Log on homegear gucken was beim Start steht? Weil von den Berechtigungen und der Config sieht das auf den ersten Blick gut aus.

Beim Start sollte “All physical devices are connected now” auftauchen.

So, ich konnte mich jetzt nochmal damit beschäftigen. Ich hab den USB-Stick nochmal am Windows-PC getestet und dort schon mal meinen dicken BUG gefunden: Der nanoCUL will nur mit 38400 baud reden. Leider hat das aber mein Problem nicht geheilt :frowning:

Nach wie vor kommt der gleiche Fehler, ich habe Gateway und Docker-Instanz durchgestartet. Beim Start sind mir dann im Log diese Meldungen aufgefallen:
Neustart Gateway:

09/25/20 17:42:02.407 Info: Unloading mod_intertechno.so...
09/25/20 17:42:02.407 (Shutdown) => Saving devices
09/25/20 17:42:02.407 (Shutdown) => Saving Intertechno central...
09/25/20 17:42:02.407 Module Intertechno: Info: Saving Intertechno peer 1
09/25/20 17:42:02.407 Module Intertechno: Info: Saving Intertechno peer 2
09/25/20 17:42:02.408 Info: Disposing family module mod_intertechno.so
09/25/20 17:42:02.408 Debug: Deleting factory pointer of module mod_intertechno.so
09/25/20 17:42:02.408 Debug: Closing dynamic library module mod_intertechno.so
09/25/20 17:42:02.408 Debug: Dynamic library mod_intertechno.so disposed
09/25/20 17:42:02.408 Info: mod_intertechno.so unloaded.
09/25/20 17:42:02.409 Info: Loading family module (type 1) mod_intertechno.so
09/25/20 17:42:02.411 Info: Loading settings from /etc/homegear/families/intertechno.conf
09/25/20 17:42:02.412 Loading XML RPC devices...
09/25/20 17:42:02.415 Loading device 11
09/25/20 17:42:02.415 Module Intertechno: Loading Intertechno peer 1
09/25/20 17:42:02.415 Module Intertechno: Loading Intertechno peer 2
09/25/20 17:42:02.417 Module Intertechno: Intertechno CUL "nano-CUL-433": Error in file PhysicalInterface
s/Cul.cpp line 93 in function virtual void MyFamily::Cul::startListening(): Couldn't open device "/dev/ttyACM0": No such device
09/25/20 17:42:02.424 Info: Script with id 15 finished with exit code 0 

Neustart Instanz:

9/25/20 18:23:22.392 Module Intertechno: Intertechno CUL "nano-CUL-433": Error in file PhysicalInterface
s/Cul.cpp line 93 in function virtual void MyFamily::Cul::startListening(): Couldn't flush device /dev/tt
yACM0
09/25/20 18:23:22.392 Critical: At least one of the communication modules could not be opened...
0

Es scheint doch wohl auf das device des nanoCUL interfaces zu deuten? Kann ich das irgendwie weiter untersuchen? Oder lieber ein homegear ohne docker aufsetzen?

So, ich habe weiter geforscht. Das Problem mit der nicht offenen Schnittstelle zum CUL Stick entsteht, wenn auf dem Host-System eine UDEV-Regel einrichte, um zu vermeiden dass der STICK unterschiedliche device-Namen bekommt, falls ich mal weiter USB-Geräte anschließe.

Das Problem habe jetzt erst einmal umgangen indem ich das ursprüngliche device an die Docker-Instanz weiterreiche. Wenn ich das tue, kann ich auf der homegear-Instanz dann tatsächlich den CUL Stick ansprechen. Juhu!

Benutze ich ein miniterm kann ich mit dem CUL “reden” und meine Steckdosen schalten:

V 1.67 nanoCUL433
isFFF000000FFF
isFFF000000FF0

Auch bei Ausführen des Test-Skipts kommt jetzt kein Fehler mehr:

09/27/20 16:27:08.709 Script Engine Server: Info: Starting script "/var/lib/homegear/scripts/inline.php" with id 1.
09/27/20 16:27:08.714 Module Intertechno: Info: STATE of peer 1 with serial number ITD00000E07:1 was set to 0x01.
09/27/20 16:27:08.714 Module Intertechno: Intertechno CUL "nano-CUL-433": Info: Sending (nano-CUL-433): 00000000000000111000000111010111
09/27/20 16:27:09.217 Info: Script with id 1 finished with exit code 0
09/27/20 16:27:09.223 IPC Server: Info: Connection to IPC server's client number 2 closed.
09/27/20 16:27:09.225 09/27/20 16:27:09.225 Intertechno packet received from 00000000 (RSSI: -69 dBm): 

Allerdings schaltet die Steckdose trotzdem nicht und für mich ist der gesendete Inhalt auch nicht plausibel. Wie gesagt, mit isFFF000000FFF schaltet meine Steckdose, was mache ich also falsch in der homegear Konfiguration?
Edit:
Nach nochmaligem Stöbern in der FHEM-Dokumentation scheint es doch als ob homegear den 32-stelligen 0/1-Code der neuen intertechno Geräte sendet statt des 12-stelligen 0/F-Codes. Aber ich habe nichts gefunden um das einzustellen?

Da muss glaube @sathya was zu sagen.

Kannst du statt der udev-rule nicht einfach /dev/serial/by-id/... nehmen?

@pmayer stimmt, das hatte ich auch übersehen. Bei mir gibt es ja auch das device /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 :wink:

Ich hatte diesen Teil der Einrichtung aus dem Artikel in 'ct 19/2020 (ct.de/yu49). In letzter Zeit schwindet mein Vertrauen in die Qualität der Praxis-Artikel meiner Lieblings-Computerzeitschrift etwas…

Was das Schalten von homegear aus angeht, ändert das aber (natürlich) nichts. Nachdem ich auch keine Möglichkeit finde um einzustellen, dass es alte intertechno Schalter sind, müsste das ja rein über die Adresse laufen.
Bei mir sind es Geräte mit dem Buchstaben-Wahlrad auf “h” und den Ziffern 1 und 2. Das nach fhem-Wiki umgerechnet ergibt 0x381 und 0X3A1. Das hatte ich aber so nicht konfiguriert, weil ich Dussel die Adressen inklusive Ein- bzw Ausschaltkommandao berechnet hatte. Und kaum hab ich das korrigiert funktioniert es. :slight_smile:
Nochmal Danke für die Unterstützung!

2 Likes

Geht mir leider ähnlich… vor allem weil die meisten Info’s aus dem Artikel von meinem Gespräch mit der Redakteurin stammen und ich mehrfach meine Hilfe bei inhaltlichen Fragen angeboten habe :wink:
Dass da mqtt so schlecht weg kommt, finde ich gräuselich :wink:

Das heißt jetzt funktioniert alles?

2 Likes

Das Schalten mit dem 1-Zeiler-Test-Script von der Console funktioniert. Jetzt muss ich das noch in meinen node-blue-flow integrieren. Ich hab aber erstmal “Feierabend gemacht” - mein Rücken will gerade nicht so lange vor dem Rechner sitzen.

Oh, da hab ich ja gleich Support aus allererster Hand bekommen. :smiley:
Mit Mqtt wollte ich mich auch noch beschäftigen, ich hab da noch ein paar Shelly Schaltaktoren mit denen ich eine Steckdose “smart aufrüsten” will.

1 Like