NEWS
How to Rasbee oder Rasbee II via ser2net
-
Hallo,
vielen Dank für das HowTo.
Habe sowas versucht und bin erst mal gescheitertErstinbetriebnahme:
- ioBroker auf Win Laptop, läut top, aber ungünstiger Funkstandort
- CC2538+CC2592 dort eingesteckt und über COM mit Adapter verbunden. Funktioniert
Migration CC2538+CC2592 zum OPI
- Orange Pi +2e an guten Funkstandort. Dort läuft schon piVCCU, zugehöriges Funkmodul + zusätzlicher CUL-Stick
- CC2538+CC2592 dort eingesteckt
Dazu
sudo apt-get install ser2net
scheint funktioniert zu haben
Nach dem Einstecken des Zigbee Moduls kann man das als ttyACM1 sehen
ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Jan 29 01:09 usb-busware.de_CUL868-if00 -> ../../ttyACM1 lrwxrwxrwx 1 root root 13 Jan 29 01:09 usb-Texas_Instruments_CC2538_USB_CDC-if00 -> ../../ttyACM0 root@opi2e_piVCCU3:~#
Daraus habe ich gebastelt
20108:raw:0:/dev/serial/by-id/ usb-Texas_Instruments_CC2538_USB_CDC-if00:115200 8DATABITS NONE 1STOPBIT banner
und mit WinSCP im Unixfilemode in /etc/ser2net.conf zugefügt
Reboot des OPIIm Adapter eingetragen
tcp://192.168.1.84:20108Und Fehlermeldungen geerntet:
2021-01-29 01:35:12.586 - info: zigbee.0 (11444) Starting Zigbee npm ... 2021-01-29 01:35:12.589 - info: zigbee.0 (11444) Installed Version: iobroker.zigbee@1.4.2 2021-01-29 01:35:33.593 - error: zigbee.0 (11444) Failed to start Zigbee 2021-01-29 01:35:33.593 - error: zigbee.0 (11444) Error: Error while opening socket at Socket. (C:\Program Files\iobroker\ioBrMain026\node_modules\zigbee-herdsman\dist\adapter\z-stack\znp\znp.js:185:28) at Socket.emit (events.js:203:15) at emitErrorNT (internal/streams/destroy.js:91:8) at emitErrorAndCloseNT (internal/streams/destroy.js:59:3) at process._tickCallback (internal/process/next_tick.js:63:19) 2021-01-29 01:35:43.596 - info: zigbee.0 (11444) Try to reconnect.
Irgendwas ist da schief gegangen. Hat jemand eine Idee? Wie kann ich das debuggen?
nach Rückbau des Zigbee Moduls zum Laptop wieder alles gut, Adapter wird grün, Geräte sind da.
Vielen Dank!
-
Möchte noch meine Erfahrungen ergänzen:
ser2net ist schon sehr seltsam.Bei mir hat nach vielen Experimenten auf meinem Orange Pi +2e unter armbian stretch funktioniert:
sudo apt install ser2net
installiert das Paket und macht auch was im systemd. Bei mir ist das dann auch bootfest.
ls -l /dev/serial/by-id
Antwort
lrwxrwxrwx 1 root root 13 Jan 29 01:09 usb-Texas_Instruments_CC2538_USB_CDC-if00 -> ../../ttyACM0
Jetzt wissen wir, wie das USB-Gerät eindeutig und bootfest anzusprechen ist: usb-Texas_Instruments_CC2538_USB_CDC-if00
Dann schauen wir noch ob der port belegt ist
netstat -tanp | grep 20108
Wenn er frei ist, nehmen wir den. Wird für TCP Server gerne genommen. Ansonsten weiter suchen
Daraus habe ich gebaut
192.168.178.55,20108:raw:0:/dev/serial/by-id/usb-Texas_Instruments_CC2538_USB_CDC-if00:115200 8DATABITS NONE 1STOPBIT banner
wobei 192.168.178.55 stellvertretend für die IP-Adresse des ser2net hosts steht, also des Geräts, auf dem ser2net läuft. Das Vorstellen der IP-Adresse mit Komma getrennt war bei mir erforderlich, weil ser2net immer eine tcp6, also wohl eine ipv6 generiert hat. Laut manpage sollte man
ipv4,tcp,
vorstellen. Hat aber bei mir nicht funktioniert. Im var/log/syslog steht in diesem Fehlerfall dann
localhost ser2net: port number was invalid on line 80
auch localhost als Text oder IP Nr hat nicht funktioniert.
Die Spur mit ipv6 habe ich im grünen Forum gefunden https://forum.fhem.de/index.php/topic,109861.msg1038987.html#msg1038987
Die so zusammengebaute Zeile trägt man in die Datei
/etc/ser2net.conf
ein. Am Besten über WinSCP mit einem ordentlichen Editor. Den nano oder gar vi muß man sich nicht mehr antun.
Die Zeile mit BANNER habe ich drin gelassen, die vier vordefinierten Ports mit # auskommentiert.
Abspeichern.
Mitser2net -c /etc/ser2net.conf
startet man das Programm, das in der Regel keine Ausgaben produziert und den User m Ungewissen läßt
Deshalb mitnetstat -tanp | grep 20108
und / oder
netstat -tanp | grep ser2net
nachschauen, ob der Port von Ser2net belegt wurde. Falls dort tcp6 davor steht, wird es nicht funktionieren. Es muß tcp davor stehen
Der Client (z.B. Zigbee Adapter) referenziert dann mit
tcp://192.168.178.55:20108
auf das USB-Gerät via ser2net
Mein Beispiel war der Anschluß von
CC2538+CC2592 PA Zigbee Stick/Platine
an ioBroker Zigbee Adapter über einen Orange Pi Plus 2E mit armbian buster. Auf dem OPi ist auch noch piVCCU und ein CUL-Stick drauf.Edit: Bei meinem Opi unter armbian stretch lief ser2net leider nicht stabil. Es lief immer nur ein paar Tage und dann brach die Vorbindung ab.
Das ist für mich unbrauchbar, ich brauche stabile Lösungen. Habe deshalb USB umgangen und ein kommerzielles TCP Servermodul von USRIOT eingesetzt. Diese Kombination läuft bei mir in verschiedenen Applikationen stabil.
Das heißt jetzt aber nicht, daß ser2net generell instabil wäre. Es gibt ja viele positive Berichte dazu. Aber in meiner speziellen Konstellation war es eben instabil. Erweiterte Ursachenforschung habe ich nicht betrieben, da ich die stabile Alternative über die TCP-Servermodule auch anderweitig im Einsatz habe. -
Hat das ganze schon mal jemand auf einem Pi Zero W versucht? Habe hier noch einen rumliegen und war am überlegen, ob es möglich ist den Zigbee Stick mit einem Pi Zero W und dem ser2net einzurichten.
-
@dragon Schau mal im anderen Thread. Eher nicht empfohlen.
-
@klassisch das habe ich gelesen. Danke für den Hinweis, ist aber leider nicht die Antwort auf meine Frage. Ich frage lediglich ob das ganze möglich ist. Weil ich im Netz leider keine Angabe zu Systemanforderungen für ser2net finde.
-
@dragon ist es.
Die Anforderungen an die Systemleistung sind minimal. Der Kommentar zum frequenzproblem bleibt aber - deswegen würde ich das nicht tun.
A.
-
ich probiere das auch gerade, ser2net läuft auf einem RPi, aber ich der Zigbee Adapter verbindet sich nicht mit dem RPi.
Wenn ich auf dem RPi Z2M benutze und in der Config die eigene IP:port eintrage, dann funktioniert Z2M. Das ser2net sollte also richtig konfiguriert sein. Was kann dann im Adapter noch falsch sein?
Und mit der Extended PanID habe ich noch ein Problem: was muss ich im Adapter eintragen um die gleiche wie in Z2M konfigurierte zu bekommen? In Z2M sind 16 Dezimalzahlen drin, wenn ich daraus ASCII mache und als String im Zigbee Adapter eintrage, dann mag der die nicht weil da Werte ausserhalb 0..f drin sind. -
@jojos sagte in How to Rasbee oder Rasbee II via ser2net:
Was kann dann im Adapter noch falsch sein?
Auf Basis der genannten Informationen ins Blaue geraten:- TCP groß geschrieben? Anleitung sagt: For example tcp://192.168.1.46:8880
- Irgendein Docker, Container, VM dazwischen, welches tcp nicht durchreicht?
-
@klassisch es war doch richtig, ich war nur zu ungeduldig. Es dauert etwas bis der Koordinator angezeigt wird.
Jetzt suche ich noch wie ich die vorherige Konfig aus Z2M im Zigbee Adapter verwenden kann.in der z2m/configuration.yaml:
homeassistant: false permit_join: true mqtt: base_topic: zigbee2mqtt server: mqtt://localhost keepalive: 60 reject_unauthorized: true version: 4 client_id: MY_CLIENT_ID serial: # port: /dev/ttyUSB0 port: 'tcp://192.168.100.28:20108' adapter: auto advanced: network_key: - 37 - 99 - 73 - 107
-
@jojos Prima, daß es so läuft, freut mich.
Zur anderen Frage kann ich leider gar nichts sagen. Denke die Experten werden hier mal wieder vorbeischauen. -
habe im z2m noch eine coordinator_backup.json gefunden, da stehen die IDs drin. Nutzt mir aber nicht viel, ich muss die Geräte neu anlernen weil der Adapter ja noch keine Geräteliste hat.
-
@jojos sagte in How to Rasbee oder Rasbee II via ser2net:
coordinator_backup.json
die mpsste aber passend zu unserer shepherd.db sein
-
@arteck mit der gleichen ID hat der Umzug von z2m auf den Zigbee Adapter hat das Funknetz nicht ordentlich funktioniert. Anlernen der Geräte hat sehr lange gedauert, mehrere Versuche gebraucht oder ging gar nicht.
Habe dann doch eine neue ID vergeben und vor allem eine LED Lampe, die Router spielt, als erstes neu konfiguriert. Danach klappte es ordentlich mit dem Anlernen der anderen Geräte. So ein bisschen Eigenleben hat dieses Zigbee ja... Habe aber auch noch nicht viel Erfahrung damit.
Die zigbee2mqtt/data/database.db scheint das Gleiche wie die shepherd.db zu sein, sind beides JSON mit den Zigbee Geräten. -
@klassisch Habe Ser2net mit Hilfe der Einträge hier zum laufen bekommen. Habe jetzt aber noch das Problem das ich nach einem Neustart manuell starten muss. Bekomme keinen Autostart hin. Habe "sudo crontab -e" aufgerufen und dort den Eintrag "@reboot /usr/sbin/ser2net -c /etc/ser2net.conf" gemacht. Aber nach einem Neustart läuft das Teil nicht. Auch der Eintrag "/usr/sbin/ser2net -c /etc/ser2net.conf" in /etc/rc.local bringt mir keinen Erfolg. Was mache ich falsch?
-
@massenbach Sorry, kann ich Dir leider nicht sagen, bin kein Linux SBC Experte.
Früher gab es für den Autostart bei Linux systemd. Das scheint aber aus der Mode gekommen zu sein. Dazu gibt es längere Grundsatzdiskussionen im Netz, die ich aber nicht verfolge.
Auf SBCs läuft bei mir nur noch Homematic, NUT und neuerdings auch noch Victron Venus OS. ioBroker läuft bei mir auf einem Notebook unter Win10. Stabil und gut zu warten.Vielleicht sollte ich meinen obigen Post noch mit dem Ergebnis ergänzen; Bei meinem Opi unter armbian stretch lief ser2net leider nicht stabil. Es lief ein paar Tage und dann brach die Vorbindung ab.
Das ist für mich unbrauchbar, ich brauche stabile Lösungen. Habe deshalb USB umgangen und ein kommerzielles TCP Servermodul von USRIOT eingesetzt. Diese Kombination läuft bei mir in verschiedenen Applikationen stabil. -
@massenbach der wird über init.d gestartet
-
bei mir läuft der ser2net jetzt seitdem ich hier nachgefragt hatte ohne Probleme auf einem RPi3.
Der installiert sich ja gleich als service, entsprechend muss man in /etc/ser2net.conf seine Einstellungen machen und mit 'sudo systemctl enable ser2net' den Dienst aktivieren. Dann noch mit 'sudo systemctl start ser2net' starten und zur Kontrolle 'sudo systemctl status ser2net'. -
@jojos genau
-
@klassisch said in How to Rasbee oder Rasbee II via ser2net:
192.168.178.55,20108:raw:0:/dev/serial/by-id/usb-Texas_Instruments_CC2538_USB_CDC-if00:115200 8DATABITS NONE 1STOPBIT banner
Da diese Anleitung trotz des Alters immer noch recht weit oben in den Suchmaschinen auftaucht und die Konfiguration extrem verwirrt, hier mal ein funktionierendes Beispiel in der neuen ser2net.yaml Weise:
define: &banner \r\nser2net port \p device \d [\B] (Debian GNU/Linux)\r\n\r\n connection: &aeotecstick7 accepter: tcp,4000 enable: on options: banner: *banner kickolduser: true telnet-brk-on-sync: true connector: serialdev,/dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0,115200n81,local connection: &razberry7 accepter: tcp,4001 enable: on options: banner: *banner kickolduser: true telnet-brk-on-sync: true connector: serialdev,/dev/ttyAMA0,115200n81,local connection: &ender3pro accepter: tcp,5000 enable: on options: banner: *banner kickolduser: true telnet-brk-on-sync: true connector: serialdev,/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0,115200n81,local
Bei Erfolgreicher Verbindung von Geräten solltet ihr folgendes sehen:
root@zwave:~# lsof -i COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ... ser2net 3443 root 7u IPv6 27543 0t0 TCP *:4000 (LISTEN) ser2net 3443 root 8u IPv6 27544 0t0 TCP *:4001 (LISTEN) ser2net 3443 root 9u IPv6 27545 0t0 TCP *:5000 (LISTEN) ser2net 3443 root 10u IPv6 27546 0t0 TCP 192.168.1.14:4000->192.168.5.203:48282 (ESTABLISHED) ser2net 3443 root 12u IPv6 27547 0t0 TCP 192.168.1.14:4001->172.17.0.2:40624 (ESTABLISHED) ser2net 3443 root 14u IPv6 29343 0t0 TCP 192.168.1.14:5000->192.168.1.111:39644 (ESTABLISHED)
Läuft bei mir nun auf zwei alten Pi1 und die Anwendungen im Docker auf einem i7 verbinden sich damit.
Have FUN!