[Modul] Zigbee2MQTT

Hallo Ralf,
über den Befehl " ls /dev/ttyACM*" kommt folgendes:

Die anderen Befehle von dir führen ins Leere. Über das Paket-Zentrum habe ich bereits vor einigen Tagen „SynoKernel USB Serial drivers“ und auch „SynoCli Kernel Tools“ installiert.

Wie man es manuell macht weiß ich leider auch nicht.
Ich bin ja schon kurz davor mir einen Zigbee-Lan Coordinator zu kaufen. Aber ob es damit besser wird? Und welchen sollte man nehmen? Der Zigbee CC2652P2 TCP Ethernet Coordinator bei cod[punkt]m ist derzeit nicht lieferbar.

Gibt es andere Empfehlungen?

Hi,
mir fällt nur noch ein das Du den empfohlenen Eintrag

serial:
  adapter: deconz

wohl nicht drin hast. Ich benutze andere Sticks.

Ralf

Moin @marvus ,

als erstes tausche den Stick gegen einen SONOFF Zigbee 3.0 USB Dongle Plus. Achte bitte dabei darauf, dass Du einen mit TI-Chipsatz und keinen SiLabs nimmst.

als Zweites dann mal mit dem Befehl

ls -l /dev/serial/by-id

Ein, dann sollte etwa sowas kommen:

lrwxrwxrwx. 1 root root 13 Oct 19 19:26 usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00 → …/…/ttyACM0

Dann startest Du den Container mit:

docker run \
   --name zigbee2mqtt \
   --restart=unless-stopped \
   --device=/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00:/dev/ttyACM0 \ // Hier trägst Du Deine Kennung des Sticks ein.
   -p 8080:8080 \
   -v $(pwd)/data:/app/data \
   -v /run/udev:/run/udev:ro \
   -e TZ=Europe/Amsterdam \
   koenkk/zigbee2mqtt

Und dann schauen, ob es läuft. Du kannst es auch mit dem Conbee-Stick versuchen. auch da kommt bei dem oben genannten ls Befehl eine Kennung.

Stabiler und besser läuft hier aber der Sonoff-Stick.

LG
Burkhard

Hallo @HarmonyFan,
leider hat das keine Auswirkungen :frowning:

@Burki24 Danke, der Stick kommt heute an und ich werde es bald testen können.

Viele Grüße
marvus

Für den Stick brauchst Du auf jeden Fall die Treiber. Du hattest das Treiber-Paket ja schon installiert. Mach sicherheitshalber einen Neustart deiner DS um zu sehen ob sie dann (noch) laufen. Wenn nicht manuelle Installation ist nicht tragisch zumal Du per ssh schon auf der DS warst:

Ralf

Hallo Burkhard,
der Stick kam an, aber zu Anfang gibt es bereits ein Problem und ich bin mir auch nicht sicher, ob ich einen Stick mit TI Chipsatz bekommen habe.
Bestellt habe ich diesen: Sonoff-Stick bei Amazon, der extra „TI“ im Namen enthält.

Nach Anschluss an der Synology erhalte ich bei deinem Befehl folgende Meldung:

ls: cannot access '/dev/serial/by-id/': No such file or directory

Ich bin dann in die Systemsteuerung der Syno gegangen und sehe im Info-Center unter USB-Gerät „CP120x UART Brifge - Silicon Labs“

Handelt es sich also um den falschen Stick?

Bei Eingabe des Befehls

lsusb

erhalte ich die Meldung

|__usb1          1d6b:0002:0404 09  2.00  480MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__1-2         10c4:ea60:0100 00  1.10   12MBit/s 100mA 1IF  (Silicon Labs Sonoff Zigbee 3.0 USB Dongle Plus 0001)
  |__1-4         f400:f400:0100 00  2.00  480MBit/s 200mA 1IF  (Synology DiskStation 65002B2A041A2E50)
|__usb2          1d6b:0003:0404 09  3.00 5000MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub

Es liegt also generell am falschen Stick oder bei mir ist der völlige Wurm drin :see_no_evil:

Es ist der falsche Stick. Aber erkannt wird er ja. Dann probiere in der configuration.yaml bitte folgendes:

serial:
  port: /dev/ttyACM0
  adapter: ezsp

WICHTIG: adapter: ezsp

Ist normal, wenn Du einen Silabs-Stick nutzt, der kriegt keine ID mehr.

Gruß
Burkhard

Moin - das gleiche Problem hatte ich auch.

Stick war als TI bestellt (laut Verkäuferangabe), hat dann aber SiLabs signaliesiert.
Ich hab ihn nicht zum laufen gebracht → return.

Mein Problem hat sich gelöst.
Die Einstellung TCP funktioniert, man kann leider aus dem Log nicht richtig erkennen, ob die Bindung zwischen z2gbee2MQTT und dem Sonoff Gateway richtig funktioniert.

Nachdem ich dann verstanden hatte, wie mit dem IPSymcon-Script richtig vorgegangen werden muss und mir ein passendes Rezept für die Gateway-Logik beschafft hatte, hat der Spass dann auch tatsächlich funktioniert.

Mein „Royal Gardeneer“ Ventil muss als RTX, ZVG1 installiert werden.

Grüße

Rüdiger

@Burki24 und @HarmonyFan

Danke für eure Unterstützung. Ich habe den Sonoff Stick auch mit eurer Hilfe jetzt nicht zum Laufen bekommen und erhalte weiter Fehlermeldungen. Ich habe das Thema Zigbee2mqtt nun aufgegeben, weil ich auch einfach nicht mehr die Zeit dafür habe. Das Thema hat nun schon jede freie Minute der letzten 2 Wochen in Anspruch genommen. Ich habe jetzt wieder meinen alten Raspberry pi angeschlossen und werde meinen alten Conbee II Stick nun darüber betreiben, bis ich von cod.m ein Lan-Gateway erwerben kann. Dann werde ich es noch einmal erneut probieren.

Viele Grüße
marvus

Hi,
für den Sonoff benötigst Du auf jeden Fall die USB Treiber da der nicht /dev/ttyACM0 sondern /dev/ttyUSB0 bnutzt.

Ralf

Ich versuche gerade für den Aqara FP1 eine Zone festzulegen. In der Z2M GUI bekomme ich es nicht hin:-( Dann habe ich folgendes Script versucht:

<?php
unset($PayloadSet);
$PayloadSet["region_id"] = 1;
$PayloadSet["zones"] = '';
for ($x = 1; $x < 5; $x++){
    for ($y = 1; $y < 8; $y++){
        $zone["x"] = $x;
        $zone["y"] = $y;
        $PayloadSet["zones"] .= json_encode($zone);
    }
}
$PayLoad["region_upsert"] = json_encode($PayloadSet);
var_dump(json_encode($PayLoad));
Z2M_Command(44858, 'set', json_encode($PayLoad));
?>

damit sollten alle 28 Quadranten zu Zone 1 zugeordnet werden. Leider mag Z2M es nciht. Wo ist mein Fehler?

Ralf

Moin burki,
Ich hatte es von z2m kopiert und eben nochmal region_upsert

Ich hatte auch die GUI im Auge und ich meine das hat meine zones angemeckert.

Ralf Biedermann

Was hat er denn als Fehler raus gegeben?

Das hier:

2023-08-05 21:48:59zigbee-herdsman-converters:xiaomi:aqara_fp1:region_upsert: encountered an error (NOT_OBJECT) while parsing configuration commands (input: „{"region_id":1,"zones":"{\"x\":1,\"y\":1}{\"x\":1,\"y\":2}{\"x\":1,\"y\":3}{\"x\":1,\"y\":4}{\"x\":1,\"y\":5}{\"x\":1,\"y\":6}{\"x\":1,\"y\":7}{\"x\":2,\"y\":1}{\"x\":2,\"y\":2}{\"x\":2,\"y\":3}{\"x\":2,\"y\":4}{\"x\":2,\"y\":5}{\"x\":2,\"y\":6}{\"x\":2,\"y\":7}{\"x\":3,\"y\":1}{\"x\":3,\"y\":2}{\"x\":3,\"y\":3}{\"x\":3,\"y\":4}{\"x\":3,\"y\":5}{\"x\":3,\"y\":6}{\"x\":3,\"y\":7}{\"x\":4,\"y\":1}{\"x\":4,\"y\":2}{\"x\":4,\"y\":3}{\"x\":4,\"y\":4}{\"x\":4,\"y\":5}{\"x\":4,\"y\":6}{\"x\":4,\"y\":7}"}“)

Ralf Biedermann

Kannst du die aktuelle Beta Version nochmal installieren?
fan_state sollte nun funktionieren.

Kannst du mr dann nochmal ein debug erzeugen wen du die Geräteinformationen abrufst?

Grüße,
Kai

@Markus1979

Das Profil ist jetzt implementiert. Bitte Rückmeldung, ob alles läuft.

Danke @KaiS

LG
Burkhard

Sehr gut, ich bin gestern Abend erst aus dem Urlaub wieder gekommen, sorry dass ich nicht mehr geantwortet hatte.

Grüße,
Kai

Das klappt nicht. Du kannst nicht einfach JSON String verketten.
Erst das ganze Array erstellen und dann zu JSON ausgeben.
Vielleicht so?

$PayloadSet = [];
$PayloadSet["region_id"] = 1;
$PayloadSet["zones"] = [];
for ($x = 1; $x < 5; $x++){
    for ($y = 1; $y < 8; $y++){
        $zone["x"] = $x;
        $zone["y"] = $y;
        $PayloadSet["zones"][] = $zone;
    }
}
$PayLoad["region_upsert"] = json_encode($PayloadSet);
var_dump(json_encode($PayLoad));
Z2M_Command(44858, 'set', json_encode($PayLoad));

Michael

Hi,
auf einem anderen Weg hatte ich schon das selbe Ergebnis. Hier hat mich gestört im json bei „zones“ am Anfang eine eckige Klammer ist. Die eckige Klammer habe ich irgendwie auch weg bekommen aber Z2M mag es immer noch nicht. Meine Problem ist die Erklärung des Payload aus 2 Teilen besteht einmal wird „region_upsert“ erklärt und unabhängig davon „zones“ aber nicht wie ein kompletter Payload aussehen muss. Mittlerweile habe ich json ansatzweise verstanden aber wenn es tiefer verschachtelt wird habe ich noch meine Probleme.

Ralf