mit Pi Tasmota Zustand lesen und schalten

  • Ja sehe ich auch so. Werde da mal nun einige Zeit damit verbringen und hoffentlich meine Anforderungen damit lösen können.

    Grob zum Hintergrund meiner Wünsche:

    1, Soll die Heizung tagsüber, je nach Außentemperatur, innerhalb eines Zeitfenster mit der FritzBox Dect Steckdose schalten. (Ist fast fertig)

    2. Ich habe zwei Garagen gesteuert mit 4Ch mit Funk, Siri und Alexa, sowie eines Basic der als Sensor wirkt um zu sehen ob eines der Tore offen ist. Wenn ja brennt Lampe im Wohnzimmer (Blocky Steuerung). Bisher erfolgt Schließung des offenes Tores nach 20min., mittels Steuerung mit einem alten C-Basic Control PC.

    Dies soll künftig der Raspi mit Sonoff machen ohne ein Kabel neu legen zu müssen.

    Der Winter kommt erst noch und man soll sich ja sinnvoll beschäftigen ;)

    EDIT:

    Die Abfrage ob Garage offen oder zu klappt schon mal. Danke (Hochkommafehler)

    EDIT2:

    Fertig, war leichter als Gedacht dank deinen Anregungen.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    2 Mal editiert, zuletzt von mafrei (8. Dezember 2018 um 13:02)

  • Ich wollte nun einem POW die Leistung abfragen (WEB). Mit

    http://192.168.178.220/cm?cmnd=status

    bekomme ich diese info nicht. Es soll unter Status 11 stehen die Abfrage

    http://192.168.178.220/cm?cmnd=Status11 oder http://192.168.178.220/cm?cmnd=StatusPTH

    bringt jedoch eine Fehlermeldung.

    Was ist da falsch ?

    EDIT:

    Format für Status 10 lautet wohl:

    http://192.168.178.xx/cm?cmnd=status%2010

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    Einmal editiert, zuletzt von mafrei (18. Dezember 2018 um 13:53)

  • DS,

    werde dies spätre mal testen, bei meinem Beispiel erhalte ich immer NULL um gesamten String steht aber die Leistung unter Power in deinem Beispiel (status 8) unter Energy Power, Dies dürfte wohl stimmen ;)

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Mit Status 8 abfragen erhalte ich den richtigen Wert,:

    {"StatusSNS":{"Time":"2018.12.19 12:27:41","ENERGY":{"Total":0.012,"Yesterday":0.011,"Today":0.001,"Power":12,"Factor":0.41,"Voltage":229,"Current":0.128}}}

    Ich wollte nun nur den Wert für die Leistung (Power) auslesen (Raspi mit jq Paket) mit:

    LEIST=$(curl -s "http://192.168.178.xx/cm?cmnd=status%208" | jq -r '.Power');

    als Antwort erhalte ich aber das Wort NULL

    leider gelingt mir da nicht. sieht einer meinen Fehler ?

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Hallo mafrei ,

    die Filter von jq sind etwas sperrig. Am besten fängst du bei der Auswertung eines JSON-Strings mit dem allgemeinen Filter '.' an, um zu sehen, was denn überhaupt der Output ist. Und dann arbeitest du dich durch die Ebenen und Unterebenen des Strings durch. Für dein Gerät wäre der korrekte Filter so:

    Code
    LEIST=$(curl -s "http://192.168.178.xx/cm?cmnd=status%208" | jq -r '.StatusSNS.ENERGY.Power')

    Zur Erklärung:

    Der JSON-String von status 8 besteht aus dem Eintrag StatusSNS. Dieser Eintrag hat wiederum zwei Untereinträge nämlich Time und ENERGY. ENERGY hat insgesamt 7 Untereinträge, von denen wir jedoch nur den Wert von Power sehen wollen. Du kannst den oben stehenden Filter auch so lesen: Zeige mir von StatusSNS nur den Eintrag ENERGY und davon nur den Eintrag Power bzw. dessen Wert. Du bildest also in dem Filterausdruck die Struktur des JSON-Strings nach. Wenn du also den Verbrauch von gestern sehen willst, schreibst du dieses:

    Code
    GESTERN=$(curl -s "http://192.168.178.xx/cm?cmnd=status%208" | jq -r '.StatusSNS.ENERGY.Yesterday')

    Alles klar?! :)

  • Also der Thread ist ziemlich verwirrend.

    Mal IoBroker mal Domoticz. Dann wieder Bash Script das ganze mit curl ^^

    Was soll denn eigentlich jetzt genau gemacht werden?

    Warum das ganze mit curl, wenn ein Raspi zur Verfügung steht?

    Wenn schon mit bash einfach nen mosquitto auf den RasPi (Mqtt broker) und da mit nem bash script immer brav abfragen und damit schalten/steuern was geschaltet werden soll... oder?

    Hier mal ein Beispiel-Bash mit dem die RF Bridge empfangenen Codes ausgewertet werden:

    Spoiler anzeigen

    #!/bin/bash

    #CONFIG
    ##############################

    #MQTT-SERVER:
    MQHOST=localhost

    #Start_Client
    ##############################
    mosquitto_sub -i RASP -h $MQHOST -R -v -t '#' | while read RAW_DATA
    do
             
    #RF_Bridge
    #########################


    #RF_Wandtaster Mitte 047796
    if [ "$(echo $RAW_DATA | grep 'tele/RF_Bridge/RESULT' | grep '047796')" != "" ]; then
    mosquitto_pub -h $MQHOST -t cmnd/SCHLAF_LED/power -m toggle
    mosquitto_pub -h $MQHOST -t cmnd/NachtTisch/power -m toggle
    fi
    #RF_Wandtaste Rechts 047794
    if [ "$(echo $RAW_DATA | grep 'tele/RF_Bridge/RESULT' | grep '047794')" != "" ]; then
    mosquitto_pub -h $MQHOST -t cmnd/SCHLAF_LED/dimmer -m 10
    #mosquitto_pub -h $MQHOST -t cmnd/SCHLAF_LED/color2 -m '#FFBF00'
    mosquitto_pub -h $MQHOST -t cmnd/SCHLAF_LED/power -m toggle
    fi
    done

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    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

    2 Mal editiert, zuletzt von HoerMirAuf (19. Dezember 2018 um 21:06)

  • Am besten mit einem Bash Script. Hat das schon jemand mal versucht?

    Um zur Ursprungsfrage zurückzukommen: JA !

    Bei mir läuft alles auf dem RasPi mit Bash und MQTT (Mosquitto)

    (siehe Beispiel-Bash)

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    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

  • Hi,

    also mit IOBroker mache ich gar nichts.

    Bisher hatte auch meine Garagentorsteuerung mit Signalisierung und Schließung nach 15 min.gemacht. Teilweise mit Raspi, teilweise mit Blockly (Domotcz). Dies läuft nun.

    Mit Blockly bekomme ich auch eine Fertigmeldung meiner Waschmaschine und vom Trockner. schaltet dann die Geräte auch aus. Blockly prüft ob Leistung unter 5 Watt fällt schaltet aus und sendet Mail. (Trockner,Waschm)

    Dies funktioniert nicht mit dem Geschirrspüler, deswegen der "Umweg" über den Rasberry.

    Der GS geht während des Vorgangs häufiger in den Modus unter 5 Watt, bei fertig bleiben 3 Watt stehn. Deswegen soll die Abschaltung und Meldung mit dem Raspi kombiniert werden.

    Bin ja blutiger Anfänger. hoffe es ist dennoch halbwegs zu verstehen. ;)

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Oke ... ich kenne mich jetzt mit Domoticz null aus! Ich weiß jetzt nicht welcher der Kollegen da seine Stärke hat. ... Du steuerts die Sonoff via MQTT mit dem Domoticz?

    Muss doch möglich sein da auszuwerten wenn der Wert unter 5 Watt fällt, bzw. sagen wir länger als eine Minute bei 3 Watt ist, oder?

    Also alles andere wie Curl etc. hat da meiner Meinung nach dann nix verloren wenn schon MQTT im Haus ist.

    Klar könnte man das jetzt noch mit nem Bash und Mosquitto auswerten usw. Aber das wäre alles doppelt.

    Mal gespannt was die anderen dazu sagen. :)


    EDIT ... man könnte auch eine RULE in den Sonoff, der bei einem Wert unter 3,5 WATT eine MQTT Meldung absetzt.

    So als Schnellschuss:

    rule1 on Energy#Power<3.5 do publish stat/<TOPIC> OFF endon

    Das Ganze aktivieren mit:

    rule1 1

    darauf achten das die ONCE funktion an ist !!

    Immer Wenn der Wert unter 3,5 Watt fällt wird eine MQTT Nachricht deiner Wahl (Topic) mit dem Wert off abgesetzt. Der kann dann ausgewertet werden.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    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

    3 Mal editiert, zuletzt von HoerMirAuf (19. Dezember 2018 um 21:54)

  • Zunächst einmal muss ich sagen das dank JoergZ Infos ich schon einiges umsetzen konnte.

    Ich verstehe nicht wirklich, was du damit meinst.

    Ich habe in Domoticz Schalter (Dummys) angelegt. Diese erzeugte IDX wird keinem Sonoff zugeteilt dient nur als Dummysensor. Da er keine IP zuordnung hat wollte ich wissen ob es möglich ist mit dem Raspi mit der IDX den Dummy zu schalten.

    -----------------------------------------------------------------

    HoerMirAuf: Du steuerts die Sonoff via MQTT mit dem Domoticz?

    Ja

    -------

    HoerMirAuf: Muss doch möglich sein da auszuwerten wenn der Wert unter 5 Watt fällt, bzw. sagen wir länger als eine Minute bei 3 Watt ist, oder?

    das geht leider nicht.

    ------------------------------

    Der GS geht z.B im Hauptprogramm 3x unter die 5 Watt Grenze. Dies zähle ich, in Abhängigkeit mit der Betriebszeit hoch und schalte erst aus wenn wirklich fertig ist. Evtl. könnte mann auch sagen länger als 10 min unter 5 Watt dann aus.

    -----------------------------

    Dies Methode mit MQTT zu schalten habe ich bisher noch nicht probiert, werde aber diese Info mal zum ausprobieren nutzen.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Also alles andere wie Curl etc. hat da meiner Meinung nach dann nix verloren wenn schon MQTT im Haus ist.

    Du hast natürlich durchaus recht. Es geht auch allein mit MQTT. mafrei hat ja ursprünglich nach Möglichkeiten und nicht nach Lösungen gefragt. Möglichkeiten gibt es meist mehrere... Wie auch immer.

    mafrei Vielleicht wertest du erst einmal das Leistungsverhalten deines GS aus, um das Stadium, in dem das Gerät tatsächlich fertig ist bzw. die Menge an Bedingungen, die erfüllt sein müssen, damit der Spülvorgang als abgeschlossen betrachtet werden kann, bekannt sind. Es ist nicht optimal, wenn man sich die Werkbank voller Werkzeuge (Domoticz, bash, curl, mosquitiio_sub/_pub, IOBroker) legt und noch nicht weiß, was denn eigentlich gebaut werden soll :)

  • Es ist nicht optimal, wenn man sich die Werkbank voller Werkzeuge (Domoticz, bash, curl, mosquitiio_sub/_pub, IOBroker) legt und noch nicht weiß, was denn eigentlich gebaut werden soll :)

    Das war eigentlich der Hintergrund meiner Aussage: Curl hat da nix verloren ;)

    Viele Protokolle verderben den Brei oder so?^^ Das wird zuviel durcheinander.

    Ich persönlich würde generell mit MQTT arbeiten.

    könnte mann auch sagen länger als 10 min unter 5 Watt dann aus.

    Das klingt doch nach einem guten Trigger! Hast Du versucht da schon mal ein Blockly zu schreiben?

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    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

  • Das klingt doch nach einem guten Trigger! Hast Du versucht da schon mal ein Blockly zu schreiben?

    Ja , damit mache ich ja Waschm und Trockner.

    Leider geht das im GS nicht, aber die obere Lösung mag nicht die eleganteste sein, hilft mir aber erst mal weiter. Blockly mag im IOBroker fexibler sein, aber ich nutze ja Domoticz.

    Natürlich werde ich das mit der MQTT Möglichkeit mal anschauen und ggf. ändern, aber wie gesagt ich bin Anfänger

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker