Tasmota Sonoff ZigBee Pro

Hallo Community, die Fehler der letzten Tage wurden hoffentlich behoben. Entschuldigt den Umstand! Viel Spaß weiterhin. Lg
  • Hallo,

    ein ZigBee SOS Button soll einen Alarm schicken. Dazu habe ich eine Sonoff ZigBee-P mit Tasmota geflashed und den Melder angemeldet. Wird der SOS Knopf gedrückt gibt es folgende Meldung in der Console: SENSOR = {"ZbReceived":{"0x6B1C":{"Device":"0x6B1C","0501!02":"","Endpoint":1,"LinkQuality":167}}} Über eine Rule1: ON ZbReceived#0x6B1C WebSend [wordpress.xxxxxt.eu] /hilde.php ENDON starte ich eine php, die dann an Telegram eine Alarmmeldung schickt. Da das über https erfolgt, geht das nicht direkt von der Bridge. (glaube ich zumindest, daher der Umweg über eine externe PHP)

    Da der Melder auch Statusmeldungen schickt, SENSOR = {"ZbReceived":{"0x6B1C":{"Device":"0x6B1C","BatteryPercentage":"0F010210","Endpoint":1,"LinkQuality":61}}} muss ich verhindern, dass auch eine Meldung abgesetzt wird. Kann mir jemand bei der Lösung helfen?

    Michael

  • Danke für den Hinweis auf ESP32, die Bridge ist ja einer und so habe ich mir nun eine eigene bin erstellt und vor dem compilieren noch #define USE_TELEGRAM eingegeben. Dann einige Parameter in der Console eingetragen und schon kann ich direkt eine Message zu Telegram absetzen. Den Umweg kann ich mir nun sparen.

    Die Vorlage ändern

    Code
    {"NAME":"Sonoff ZigBee Pro","GPIO":[0,0,576,0,480,0,0,0,0,1,1,5792,0,0,0,3552,0,320,5793,3584,0,640,608,32,0,0,0,0,0,1,0,0,0,0,0,0],"FLAG":0,"BASE":1}

    Da nun die beiden beiden Buttons "ZigBee Permit Join" und "ZigBee Map" grau hinterlegt sind,

    unter "Werkzeuge Dateisystem verwalten" die Datei SonoffZBPro_coord_20220219.hex hochladen.

    In der Console:

    tmchatid 53xxxxxx
    tmtoken 709xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    tmstate 1 für senden
    tmstate 3 für empfangen
    tmstate 5 für echo
    setoption132 1

    tmsend text

    und schon erscheint der Text in Telegram.

    2 Mal editiert, zuletzt von mkaleu99 (26. Mai 2024 um 14:22)

  • Was allerdings noch offen ist, wie ich die Payload auswerte. Das Problem sind die automatischen Statusmeldungen, die natürlich keinen Alarm auslösen sollen. Wie kann ich die Payload auflösen?

    SENSOR = {"ZbReceived":{"0xFAE5":{"Device":"0xFAE5","0501!02":"","Endpoint":1,"LinkQuality":204}}}

    SENSOR = {"ZbReceived":{"0xFAE5":{"Device":"0xFAE5","BatteryPercentage":50,"BatteryVoltage":2.7,"Endpoint":1,"LinkQuality":254}}}

    Wie kann ich auf den Inhalt 0501!02 reagieren?

    rule1 ON ZbReceived#0xFAE5 Do tmsend Alarmmessage ENDON

  • Es hat gedauert, aber ich habe jetzt den Syntax erkannt. Ich hatte die 0501!02 als Folgewert von Device gehalten, weil der Inhalt "" war.

    SENSOR = {"ZbReceived":{"0xFAE5":{"Device":"0xFAE5","0501!02":"","Endpoint":1,"LinkQuality":204}}}

    Der Trigger ZbReceived löst bei jeder ZbReceived aus

    Der Trigger ZbReceived#?#Device = xFAE05 nur bei denen, wo mit "Device ":" xFAE05" ist

    Der Trigger ZbReceived#?#0501!02 nur bei allen, die 0501!02 beinhalten

    Die Frage ist nun, wie ich den Wert von BatteryPercentage übernehmen kann?

    SENSOR = {"ZbReceived":{"0xFAE5":{"Device":"0xFAE5","BatteryPercentage":50,"BatteryVoltage":2.7,"Endpoint":1,"LinkQuality":254}}}

  • Vielleicht ähnlich wie:

    ON ZbReceived#0xFAE5#BatteryPercentage DO Var1 %value% ENDON

    Danke, Das habe ich schon ausprobiert. Der Wert wird offensichtlich übernommen. Wie bekomme ich ihn dann als Parameter gesendet?

    ON ZbReceived#?#BatteryPercentage do Var1 %value% ENDON DO Websend [wordpress.xxxxxxx.eu] /hilde.php?msg=Var1&d1=1 ENDON

    Das hier will nicht funktionieren.

    Einmal editiert, zuletzt von mkaleu99 (28. Mai 2024 um 15:16)

  • Ich habe aber trotzdem noch eine Frage. Ich möchte an bei der Übergabe des Batteriezustandes auch die Bezeichnung vom Device mit übergeben, also mit einem Trigger beide Werte. Im Websend sollten dann die beiden Werte übergeben werden. Wie kann ich das Kombinieren?

    Das wird in der Konsole ausgegeben:

    SENSOR = {"ZbReceived":{"0xBF2E":{"Device":"0xBF2E","BatteryPercentage":100,"BatteryVoltage":3,"Endpoint":1,"LinkQuality":204}}}

    Die Rule wäre:

    ON ZbReceived#?#BatteriePercentage backlog Var1 %value% ; Websend [wordpress.xxxxxxx.eu] /hilde.php?msg=?????&d2%Var1% ENDON

  • Warum gibst du den Devicename nicht im Klartext in die Rule mit ein?

    Deine Rule hat eh einen Schönheitsfehler, denn beim backlog wird der var1 Wert übermittelt der VOR dem Backlog in der var1 stand, und nicht der innerhalb der backlog Command-Kette eingelesen wird.

    Zitat

    The following won't work:

    Rule1 ON event#setvar1 DO Backlog var1 %value%; Power1 %var1% ENDON

    At least not as you probably would expect. The var1 value used by the Power1 command will be the value present before the Backlog command is executed. This is so, because the rule will replace %var1% BEFORE the Backlog commands are put in the Backlog command stream.

    Das müsste dann so lauten:

    ON ZbReceived#?#BatteriePercentage Websend [wordpress.xxxxxxx.eu] /hilde.php?msg=?????&d2%value% ENDON


    Ich würde so ansetzen:

    on zbreceived#?#BatteriePercent do backlog var1 %value%; status endon

    on status#devicename do backlog var2 %value%; event send_values endon

    on event#send_values do websend [wordpress.xxxxxxx.eu] /hilde.php?msg=%var2%&d2%var1% endon

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    Einmal editiert, zuletzt von HoerMirAuf (29. Mai 2024 um 10:19)

  • in einem ersten Schritt das Device auslesen und in eine Var2 packen welche dann im 2. Schritt mit dem Websend zugleich versendet wird.

    Ich hatte das "do" vergessen und es erst spät bemerkt. Danke, jetzt läuft es und endlich habe ich den Sytax verstanden.

    ON ZbReceived#?#Device do Var1 %value% ENDON ON ZbReceived#?#BatteriePercentage do backlog Var2 %value% ; Websend [wordpress.xxxxxxx.eu] /hilde.php?msg=%Var1%&d2%Var2% ENDON