sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

mskrause
Beiträge: 167
Registriert: 13.10.2018, 20:02
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 13 Mal
Danksagung erhalten: 19 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von mskrause » 08.05.2020, 18:19

mskrause hat geschrieben:
03.05.2020, 10:52

Frage: Wo ist der Haken bei der Schaltstatus-Rückübermittlung oder geht es bei Tasmota tatsächlich nicht :?:
hatte heute mal etwas Zeit, der Sache auf den Grund zu gehen und wie es oft so ist - simple and stupid :roll:


in den Aktor-Kanal-Einstellungen ist in SWITCH|CMD_TIMER folgender Eintrag vorgesehen:

Code: Alles auswählen

$_P1$ -f switch-p -c $CHANNEL$ -i $_C1$ -r Tasmota1
-> hier mit SV-Präfix Tasmota1

wenn nun die Relay-Zuteilung ebenso erfolgt, dann klappt es auch mit dem übertragen des Schaltstatus, also bei Steckdose -n 1 und USB -n 2 macht z.B.

Code: Alles auswählen

$_P1$ -f switch-p -c $CHANNEL$ -i $_C1$ -n 1 -r Tasmota1
für die Steckdose

hatte heute mit ein paar tasmoteten Gosund SP111 herumgespielt und da funktionierte die Statusübergabe auf Anhieb und die haben kein USB - da hats geklingelt :idea:

Vielleicht hilf es ja dem einen oder anderen auf die Spur...

Gruß
Marco
Zuletzt geändert von mskrause am 27.05.2020, 21:01, insgesamt 1-mal geändert.

TomHH
Beiträge: 96
Registriert: 25.07.2014, 07:36
Hat sich bedankt: 3 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von TomHH » 11.05.2020, 08:16

mskrause hat geschrieben:
08.05.2020, 18:19
wenn nun die Relay-Zuteilung ebenso erfolgt, dann klappt es auch mit dem übertragen des Schaltstatus, also bei Steckdose -n 1 und USB -n 2 macht z.B.
CODE: ALLES AUSWÄHLEN

$_P1$ -f switch-p -c $CHANNEL$ -i $_C1$ -n 1 -r Tasmota1
für die Steckdose
Moin ...

mit dem Eintrag funktioniert zumindest der Status des Licht bei dem iFan03, das reicht mir aber völlig aus.

Danke :-)

WSaal
Beiträge: 5
Registriert: 15.05.2019, 08:54
System: CCU

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von WSaal » 23.05.2020, 18:52

Hallo!

Ich erhoffe mir Hilfe ... :-)

Ich habe ein Sonoff TH10 mit Tasmota geflasht.
Hieraus brauche ich die Temperatur in der CCU3.

Das Script habe ich gemäß der Anleitung eingerichtet. Ebenfalls die Variablen.
Das Geät habe ich CUXD eingerichtet.

Sonoff:
Zeigt die Temperatur an:
sonoff.jpg
Auszug aus der Sonoff-Konsole:
17:44:42 RSL: stat/tasmota_169490/STATUS10 = {"StatusSNS":{"Time":"2020-05-23T17:44:42","DS18B20":{"Id":"011927BBB6E5","Temperature":25.4},"TempUnit":"C"}}

CUXD:
cuxd.jpg
cuxd.jpg (29.95 KiB) 2724 mal betrachtet
Die Variablen auf der CCU3:
ccu3variablen.jpg
Gerätestatus auf der CCU3:
gerätestatus.jpg
Hier wird die Temperatur nicht angezeigt. Die bräuchte ich aber ...
Die Taster funktionieren auch; brauch ich aber nicht.

Muss ich im Script etwas anpassen?
Hier?
script.jpg
script.jpg (55.17 KiB) 2724 mal betrachtet
Hat jemand eine Idee?

Freue mich auf eure Antworten.

Danke!

Wolle

Kilowatt_W
Beiträge: 22
Registriert: 19.12.2018, 20:45
Hat sich bedankt: 2 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von Kilowatt_W » 27.05.2020, 20:28

Hallo Frodo,

in der aktuellen Version 0.18 hab ich einen kleinen Fehler gefunden in Verbindung mit Multi-Relay Devices und Tasmota:

Beginnend mit Zeile 288 :

URL2="http://${IPADDR}/cm?user=${USER}&password=${PASSWD}&cmnd=Power"

gehört ersetzt mit :

URL2="http://${IPADDR}/cm?user=${USER}&password=${PASSWD}&cmnd=Power${RELNR}"

Dann klappt die Statusabfrage wunderbar mit mehreren Relays, sonst ist die Rückmeldung immer der Status von P1 :-)

Danke für deine Arbeit, ist wirklich unersetzlich geworden

Gruß aus Österreich

Kilowatt

mskrause
Beiträge: 167
Registriert: 13.10.2018, 20:02
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 13 Mal
Danksagung erhalten: 19 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von mskrause » 27.05.2020, 20:57

@Kilowatt

gilt sicher nur für den Eintrage mit User/PW, oder?
für die anderen URL stimmt es...

Kilowatt_W
Beiträge: 22
Registriert: 19.12.2018, 20:45
Hat sich bedankt: 2 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von Kilowatt_W » 27.05.2020, 21:08

Ja genau in der einen Zeile fehlts :-)
lg
Kilowatt

HenrykGL
Beiträge: 1
Registriert: 06.06.2020, 05:45
System: CCU

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von HenrykGL » 06.06.2020, 06:40

Hallo,
Danke für die Anleitung. Es hat alles mit einem Temperatursensor prima funktioniert. Ich habe den Sonoff TH16 mit Tasmota Software. Ich möchte den Sonoff in meiner Heizung verwenden und deshalb 3 Sensoren abfragen.
Beispiel Ausgabe Sonoff:
DS18B20-1 Temperatur 21.9°C
DS18B20-2 Temperatur 58.3°C
DS18B20-3 Temperatur 19.0°C

An der CCU3, sind 3 Variablen für Temp angelegt. Wenn ich einen Sensor anschließe wird mir die eine Temperatur auch an einer der Variablen angezeigt solange ich als Variable $Temperature verwende.

Ich dacht mir, ersetze die Variable $Temperature in der Programmzeile:
--> STATE=$( ${CURL} -s ${CURL_timout} "${URL}" | ${JQ} ".StatusSNS.$i.Temperature"; )

und benutze die ID vom Temperatursensor als neue Variable: $1234567894AA:
Beispiel von der Konsole:
{"StatusSNS":{"Time":"2020-01-01T01:01:01","Switch1":"ON","DS18B20-1":{"Id":"1234567894AA","Temperature":22.0},"DS18B20-2":{"Id":"12345678EAAA","Temperature":58.4},"DS18B20-3":{"Id":"123456789FAA","Temperature":19.1},"TempUnit":"C"}}

und erweitere den Code um jeweils die nächste ID. Hat leider nicht funktioniert. Das Selbe habe ich dann auch versucht indem ich "DS18B20-1" als Variable definiert habe. Leider ohne Erfolg. Ich habe mich lange damit beschäftigt, jedoch nicht hin bekommen. Habt Ihr einen Tip für mich, wie ich das Programm abändern muss/ kann?

Danke für Eure Hilfe

frodo.
Beiträge: 70
Registriert: 06.07.2016, 15:13
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von frodo. » 28.06.2020, 17:55

Ich habe ein neues Skript geschrieben welches nun nicht mehr direkt die Tasmota Geräte per http Kommandos abfragt sondern dieses über mosquitto und MQTT tut.

Getestet habe ich nur mit Raspberrymatic und dem mosquitto addon https://github.com/hobbyquaker/ccu-addo ... o/releases.

Das Skript ist auf github zu finden: https://github.com/FrodoVDR/mqtt-ccu/releases/ .

Bisher kennt es folgende Sensoren ENERGY, DS18B20, AM2301, BMP280, BME280 und BH1750 .

Es können maximal zwei Sensoren gleichzeitig an einem Tasmota Gerät abgefragt werden, wobei der zweite Sensor bei gleichen Werten wie zum Beispiel temperatur den ersten überschreibt.

Ich habe bei mir mein sonoff.sh komplett durch das neue mqtt.sh ersetzt.

Der Vorteil des neuen Skriptes ist das man die IP-Adresse des Tasmota Devices nicht mehr kennen muss. Es wird lediglich der Topic Name benötigt.
mqtt.png
Das Skript ist hoffentlich selbst erklärend:

Code: Alles auswählen

usage:
         mqtt.sh -c <CUX2801xxx:x> -t <TOPIC> [-o <value>] [-r <ccuname>] [-s <sensor>] [-n <number>] [-d]
         mqtt.sh --channel <CUX2801xxx:x> --topic <TOPIC> [--value <value>] [--realname <ccuname>] [--sensor <sensor>] [--relaynumber <number>] [--debug]

OPTIONS
        -c | --channel          CUxD channel name
        -t | --topic            Tasmota device topic name
        -o | --value            Power cmnd [0 - off, 1 - on, 2 - toggle]
        -r | --realname         Actual name for the variable definition.
        -s | --sensor           Query of sensor data (ENERGY, DS18B20, AM2301, BMP280, BME280 and BH1750
        -n | --relaynumber      For devices with mor than one relay you can give the relay number.
        -d | --debug            Debug information and names for CCU systemvariables

PREREQUISITE
        Raspberrymatic and mosquitto addon

EXAMPLE
         mqtt.sh -c CUX2801006:1 -t tasmota-device -o 1
                This command switches on the relay of the tasmota-device.

         mqtt.sh -c CUX2801006:1 -t tasmota-device -o 0
                This command switches off the relay of the tasmota-device.

         mqtt.sh -c CUX2801006:14 -t display1 -r display1 -s BME280,BH1750
                This command reads the status of the device with the topic display1 and the sensors BME280 and BH1750.
                Since the real name was changed to display1, the following variables are set in the CCU.

                display1-status, display1-ipaddr, display1-RSSI, display1-temperature, display1-pressure,
                display1-seapressure, display1-humidity, display1-illuminance
In der CCU ist wie beim sonoff.sh Skript ein CUxD Gerät anzulegen.
Ich habe bei mir zwei Parameter verwendet im Beispiel meines Garten Gerätes:
cux2801006.png
SHORT: $_P1$ -c $CHANNEL$ -t $_C1$ -o 0 -r $_C2$ -s energy
LONG: $_P1$ -c $CHANNEL$ -t $_C1$ -o 1 -r $_C2$ -s energy
CMD_TIMER: $_P1$ -c $CHANNEL$ -t $_C1$ -r $_C2$ -s energy

Das Skript gibt an der Konsole für das Beispiel folgendes aus:

Code: Alles auswählen

mqtt.sh -c CUX2801006:2 -t garten -r Garten_Hauptschalter -s energy

-----------------------------------------------------------------------------------------------------
                                       CCU Systemvariablen
-----------------------------------------------------------------------------------------------------

        [Garten_Hauptschalter-status]:          1
        [Garten_Hauptschalter-ipaddr]:          192.168.8.11
        [Garten_Hauptschalter-RSSI]:            -65

        [Garten_Hauptschalter-total]:           83.27 kWh
        [Garten_Hauptschalter-yesterday]:       0.249 kWh
        [Garten_Hauptschalter-today]:           0.133 kWh
        [Garten_Hauptschalter-power]:           8 W
        [Garten_Hauptschalter-factor]:          0.44
        [Garten_Hauptschalter-voltage]:         229 V
        [Garten_Hauptschalter-ampere]:          0.074 A
Damit hat man auch gleich die Namen für die CCU Systemvariablen.

Für andere Sensoren ist das Skript sehr leicht erweiterbar. Falls ich behilflich sein soll benötige ich die Debug Ausgaben des Skriptes, den dort findet man auch alle Werte die ich zur Zeit heraus filtern kann:

Code: Alles auswählen

StatusNET: {"StatusNET":{"Hostname":"garten-hauptschalter","IPAddress":"192.168.8.11","Gateway":"192.168.8.1","Subnetmask":"255.255.255.0","DNSServer":"192.168.8.1","Mac":"5C:CF:7F:7F:FB:9F","Webserver":2,"WifiConfig":0,"WifiPower":17.0}}
StatusSNS: {"StatusSNS":{"Time":"2020-06-28T17:47:59","ENERGY":{"TotalStartTime":"2018-11-03T15:51:28","Total":83.271,"Yesterday":0.249,"Today":0.134,"Power":11,"ApparentPower":22,"ReactivePower":19,"Factor":0.50,"Voltage":227,"Current":0.097}}}
StatusSTS: {"StatusSTS":{"Time":"2020-06-28T17:47:59","Uptime":"3T22:58:34","UptimeSec":341914,"Heap":25,"SleepMode":"Dynamic","Sleep":200,"LoadAvg":5,"MqttCount":6,"POWER":"ON","Wifi":{"AP":1,"SSId":"IoT","BSSId":"E2:63:DA:13:81:9A","Channel":13,"RSSI":72,"Signal":-64,"LinkCount":4,"Downtime":"0T00:00:36"}}}
Da das Skript gerade ein paar Tage alt ist, ist es sicherlich noch nicht zu 100 % getestet. Für mich ist der Ansatz über MQTT deutlich flexibler, zumal ich auch von anderen Smarthome Lösungen über MQTT die Aktoren abfragen und ansteuern kann und sowieso einen zentralen MQTT Server hatte.

Hier noch ein Bespiel von ein paar Geräten:
Sensoren.jpg
Zuletzt geändert von frodo. am 30.06.2020, 18:29, insgesamt 2-mal geändert.

frodo.
Beiträge: 70
Registriert: 06.07.2016, 15:13
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von frodo. » 28.06.2020, 23:24

HenrykGL hat geschrieben:
06.06.2020, 06:40
Hallo,
Danke für die Anleitung. Es hat alles mit einem Temperatursensor prima funktioniert. Ich habe den Sonoff TH16 mit Tasmota Software. Ich möchte den Sonoff in meiner Heizung verwenden und deshalb 3 Sensoren abfragen.
Beispiel Ausgabe Sonoff:
DS18B20-1 Temperatur 21.9°C
DS18B20-2 Temperatur 58.3°C
DS18B20-3 Temperatur 19.0°C

An der CCU3, sind 3 Variablen für Temp angelegt. Wenn ich einen Sensor anschließe wird mir die eine Temperatur auch an einer der Variablen angezeigt solange ich als Variable $Temperature verwende.

Ich dacht mir, ersetze die Variable $Temperature in der Programmzeile:
--> STATE=$( ${CURL} -s ${CURL_timout} "${URL}" | ${JQ} ".StatusSNS.$i.Temperature"; )

und benutze die ID vom Temperatursensor als neue Variable: $1234567894AA:
Beispiel von der Konsole:
{"StatusSNS":{"Time":"2020-01-01T01:01:01","Switch1":"ON","DS18B20-1":{"Id":"1234567894AA","Temperature":22.0},"DS18B20-2":{"Id":"12345678EAAA","Temperature":58.4},"DS18B20-3":{"Id":"123456789FAA","Temperature":19.1},"TempUnit":"C"}}

und erweitere den Code um jeweils die nächste ID. Hat leider nicht funktioniert. Das Selbe habe ich dann auch versucht indem ich "DS18B20-1" als Variable definiert habe. Leider ohne Erfolg. Ich habe mich lange damit beschäftigt, jedoch nicht hin bekommen. Habt Ihr einen Tip für mich, wie ich das Programm abändern muss/ kann?

Danke für Eure Hilfe
Das mqtt.sh Skript was ich gerade vorgestellt habe sollte recht einfach erweitert werden können für einen dritten Sensor. Vorgesehen sind allerdings zur Zeit nur zwei unterschiedliche Sensoren. Unabhängig davon kann man aber für einen Aktor auch mehrere CUxD Geräte definieren und in deinem Fall dann die drei verschieden Sensoren (DS18B20-1,DS18B20-2 und DS18B20-3) abfragen. Bei dem mqtt.sh Skript müssten nur die Sensor Typen DS18B20-1,DS18B20-2 und DS18B20-3 definiert werden. Bisher kennt das Skript nur DS18B20 und gibt den Wert immer nach CUX280100x:x-temperature aus bzw. einem frei definierbaren REALNAME-temperature.

frodo.
Beiträge: 70
Registriert: 06.07.2016, 15:13
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: sonoff Geräte mit espurna- oder tasmota-Firmware auf CCU3 oder RaspberryMatic

Beitrag von frodo. » 30.06.2020, 18:22

Ich habe das Skript bezüglich den Sensoren umgeschrieben es gibt ab Version 0.4 nur noch ein Parameter -s bzw. --sensor diesem kann man nun eine ganze Liste an Sensoren übergeben.

Code: Alles auswählen

mqtt.sh -c CUX2801006:14 -t display1 -r display1 -s BME280,BH1750
Zur Zeit habe ich nur die folgenden Sensoren definiert ENERGY, DS18B20, AM2301, BMP280, BME280, TSL2561 and BH1750, unbekannte Sensoren werden in der Ausgabe state/topic/STATUS10 gesucht und ausgegeben. Allerdings nur Temperatur, Humidity, Pressure, Seapressure, DewPoint und Illuminance andere Sensoren habe ich nicht.

@HenrykGl
Dein Problem lässt sich nun direkt mit dem Skript lösen:

Code: Alles auswählen

mqtt.sh -c CUX2801xxxx:x -t topicname_des_aktors -s DS18B20-1,DS18B20-2,DS18B20-3
Die Ausgabe wird in die folgenden Systemvariablen geschrieben:

Code: Alles auswählen

CUX2801xxxx:x-DS18B20-1-temperature
CUX2801xxxx:x-DS18B20-2-temperature
CUX2801xxxx:x-DS18B20-3-temperature

Antworten

Zurück zu „CUxD“