Sonoff POW R2 mit Tasmota Firmware als Messstelle

Überwachung der Solaranlage per eMail oder Pushover und Steuerung von Geräten mit Smart Home Zentralen. PV-Überschuss Steuerung verbunden mit Geräten und Tasmota Firmware. Wallbox Steuerungen und API Schnittstelle, über die Daten in die Solaranzeigen Datenbanken geschrieben und gelesen werden können. Alles, was man für Steuerungsaufgaben benötigt.

Moderator: Ulrich

sirathan
Beiträge: 19
Registriert: Di 12. Okt 2021, 19:31
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von sirathan »

Hallo

Kann ich eigentlich auch nicht mehr als 6 MQTT Geräte (Sender) haben? Z.B. wenn ich 10 Sonoff R2 habe und die senden per MQTT an die Solaranzeige.
Gibt es da irgend einen Weg? Danke

Bogeyof
Beiträge: 1109
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 161 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von Bogeyof »

Nicht über die normale Multi Regler Funktion, da ist bei 6 Geräten Schluss. Wenn du aber über eine _math.php einfach weitere SonOffs ausliest und die Werte in der Datenbank speicherst, dann schon. Dazu musst du aber etwas PHP Code erstellen. Alternativ findest du hier im Forum Beiträge über eigene_werte.php welche ebenfalls beliebige selbst ausgelesene Werte speichert. Leider wieder PHP Skript erforderlich.
Ich habe z.B. 12 Tasmota Geräte und 9 Thermostate zusätzlich zu meinen 4 offiziellen Solaranzeige Geräten in den Datenbanken...

sirathan
Beiträge: 19
Registriert: Di 12. Okt 2021, 19:31
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von sirathan »

Hallo

Das wäre genau mein Case. Ich habe einige Sonoff POWR2 die ich auslesen möchte und in eine DB schreiben möchte. Z.B. hängt einer am Trockner und ein anderer an der Waschmaschine. Ich habe bereits 5 der 6 "Regler" genutzt. Wie bist du vorgegangen?

hast du für den ersten Sonoff eine x.user.config.php erstellt und dann alle Sonoff's in der selben _math ausgelesen?
hast du alle in die selbe DB geschrieben?
hast du irgendwo noch den code, den du in der _math verwendet hast?


merci

Bogeyof
Beiträge: 1109
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 161 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von Bogeyof »

Am Problem mit MQTT bin ich auch gescheitert. Ich denke, hier liegt ein Missverständnis vor, welches in der Anleitung nicht ausreichend beschrieben wird. Die Topics für MQTT in der x.user.config.php sind Einzelwerte, d.h. es wird davon ausgegangen, dass z.B. ein Homeserver einzelne Daten je Feldname schickt. Die SonOff (bzw. alle Tasmotas) schicken aber ganze JSON-Strings als Nachrichten, die noch zerlegt werden müssten. Dies tut aber die einfache MQTT-Routine nicht. Daher gibt es einzelne Geräte-Skripte wie shelly.php oder sonoff_mqtt.phh, die genau dieses extra durchführen.

Man kann also Tasmota-Geräte nicht einfach mit Topics in der x.user.config.php aufführen und dann hoffen, die Daten landen in der Datenbank. Man müsste sie daher als einzelne Geräte einbinden, soweit sie von den vorhandenen Skripten überhaupt unterstützt werden. Leider kann man aber auch nur insgesamt 6 Geräte definieren, was für viele Tasmota Schalter natürlich auch zu wenig ist.

Ich bin daher den Weg über eine eigene Ausleseroutine gegangen, welche (bei mir) derzeit 10 Tasmota Schalter in die Datenbank schreibt. Ich habe mich dabei auf die für mich interessanten Werte wie Leistung Current, Today und Total beschränkt, natürlich können alle weiteren Werte auf diese Art auch ausgelesen werden. Ich nutze auch nicht MQTT, sondern einfach die WEB-API Schnittstelle.

Im Anhang eine beispiel_math.php, welche einen Tasmota-Schalter ausliest, die 3 Leistungswerte werden dann in der Datenbank des Gerätes gespeichert, welche die _math.php dann ausführt. Zu finden im Measurement Energy. Falls das Auslesen nicht klappt (Tasmota nicht erreichbar, Stromausfall...) wird der bisherige Total-Wert aus der Datenbank ausgelesen und fortgeschrieben, die anderen Werte auf 0 gesetzt. Es muss natürlich die entsprechende IP für das gewünschte Tasmota-Gerät im Skript eingetragen werden.

Die Erweiterung für x weitere Tasmotas wäre einfach, nur den Anteil des Auslesens vervielfältigen, IP anpassen, die Bezeichnung der Datenfelder anpassen, die Zusatzquery anpassen/erweitern und fertig. Die Durchlaufzeiten liegen hier auch bei 10 Tasmotas unter 3 Sekunden...
Dateianhänge
beispiel_math.php
(1.92 KiB) 263-mal heruntergeladen

sirathan
Beiträge: 19
Registriert: Di 12. Okt 2021, 19:31
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von sirathan »

So, nun habe ich es hingekriegt. Vielen Dank. Musste noch etwas üben, anfangs wurden die Daten nicht ins Zusatz Query übernommen.

Problem war, dass bei dir die Variable $daten anstelle $aktuelleDaten hiess. Aber nun geht es!!

Code: Alles auswählen

$aktuelleDaten["ZusatzQuery"]  = "Energy ";
$aktuelleDaten["ZusatzQuery"] .= "WaschmaschineToday=" . $aktuelleDaten["WaschmaschineToday"];
$aktuelleDaten["ZusatzQuery"] .= ",WaschmaschineTotal=" . $aktuelleDaten["WaschmaschineTotal"];
$aktuelleDaten["ZusatzQuery"] .= ",WaschmaschineCur=" . $aktuelleDaten["WaschmaschineCur"];
$aktuelleDaten["ZusatzQuery"] .= "  ".$aktuelleDaten["zentralerTimestamp"];

UNCLE03
Beiträge: 16
Registriert: Di 9. Mär 2021, 18:04
Hat sich bedankt: 9 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von UNCLE03 »

Hi,

wie und wo binde ich denn die obige beispiel.php ein ?


Angepasst als user_init.php im Ordner \www\html ?

Gruß

Bogeyof
Beiträge: 1109
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 161 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von Bogeyof »

Eine _math.php gehört zu einem Gerät, welches von Dir ausgelesen wird. D.h. Du nimmst z.B. Deinen Wechselrichter (sagen wir es wäre der Kostal Plenticore), dann muss die passende _math.php eben kostal_plenticore_math.php heißen. Diese _math.php wird dann bei jedem Auslesen des Wechselrichters am Ende durchlaufen und kann auch andere Daten auslesen und Routinen ausführen, die nicht zwingend mit dem Wechselrichter zu tun haben müssen.
Als Beispiel nimm dein Gerät der 1.user.config.php, suche die dafür verwendete Geräte-PHP und suche in dieser nach math.php. Dadurch siehst Du wie diese genau heißen muss. Dann kopierst Du Deine für Dich angepasste _math.php mit diesem Namen nach /var/www/html und fertig...

UNCLE03
Beiträge: 16
Registriert: Di 9. Mär 2021, 18:04
Hat sich bedankt: 9 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von UNCLE03 »

super Danke, das klappt schon einmal

jetzt habe ich nur das Problem mit der Anpassung, da ich Solaranzeige im Docker laufen hab.

Log sagt:
25.02. 23:42:06 -Daten nicht zur lokalen InfluxDB gesendet! info: array (
'url' => 'http://localhost/write?db=solaranzeige&precision=s',
'content_type' => 'application/json',
'http_code' => 400,
'header_size' => 421,
'request_size' => 1127,
usw

Hast Du da auch eine Idee ?

Bogeyof
Beiträge: 1109
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 161 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von Bogeyof »

Da müsste ich mehr von der Log-Datei sehen, ich denke das ist ein Fehler in den Daten oder bei der Versorgung der Namen der Datenbank usw. Es werden ja die Standardroutinen von Solaranzeige benutzt, da dürfte ja dann alles andere auch nicht speichern können. Ich glaube nicht, dass es etwas Dicker spezifisches ist...

UNCLE03
Beiträge: 16
Registriert: Di 9. Mär 2021, 18:04
Hat sich bedankt: 9 Mal

Re: Sonoff POW R2 mit Tasmota Firmware als Messstelle

Beitrag von UNCLE03 »

Na dann hier aus dem Log:

26.02. 10:28:05 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.1.200 Port: 1883
26.02. 10:28:08 -InfluxDB => [ Energy TasmotaWZToday=0,TasmotaWZTotal=,TasmotaWZCur=0 1708939691
AC Verbrauch=1565,Bezug=-200,Solarleistung=935,AC_Wallbox_Leistung=0,AutarkieProzent=94,VerbrauchProzent=92,Leistungsmesser=1,Leistung_L1_in_Watt=-1018,Leistung_L2_in_Watt=161,Leistung_L3_in_Watt=657,ExterneLeistung=-962,Phasen_Frequenz=50.03 1708939691
Batterie SOC=49,Leistung=132 1708939691
PV Gesamtleistung=935,String1_Spannung=632,String1_Strom=0.82,String1_Leistung=523,String2_Spannung=524,String2_Strom=0.79,String2_Leistung=412,String3_Spannung=0,String3_Strom=0,String3_Leistung=0,PV_Wallbox_Leistung=0 1708939691
Wallbox CTRL=10000000000000,Aktiv=0,Modus=0,Laden=0,Auto=0,verriegelt=0,gesteckt=0,3Ph_16A=0,3Ph_32A=0,Kabel_Ph=0,AC_Leistung=0,PV_Leistung=0 1708939691
Notstrom CTRL=10000100,Laden=0,Entladen=0,Notstrom=1,Wetter=0,Abregelung=0,Ladesperre=0,Entladesperre=0 1708939691
Service Modell="S10 E AIO Pro 912",Seriennummer="P10-702101016465",PowerStatus=0002 1708939691
Summen Wh_Heute=1056.02 1708939691
]
26.02. 10:28:08 -Daten nicht zur lokalen InfluxDB gesendet! info: array (
'url' => 'http://localhost/write?db=solaranzeige&precision=s',
'content_type' => 'application/json',
'http_code' => 400,
'header_size' => 421,
'request_size' => 1154,
'filetime' => -1,
'ssl_verify_result' => 0,
'redirect_count' => 0,
'total_time' => 0.022852,
'namelookup_time' => 2.2E-5,
'connect_time' => 2.2E-5,
'pretransfer_time' => 4.2E-5,
'size_upload' => 997.0,
'size_download' => 143.0,
'speed_download' => 6500.0,
'speed_upload' => 45318.0,
'download_content_length' => 143.0,
'upload_content_length' => 997.0,
'starttransfer_time' => 0.022827,
'redirect_time' => 0.0,
'redirect_url' => '',
'primary_ip' => '127.0.0.1',
'certinfo' =>
array (
),
'primary_port' => 8086,
'local_ip' => '127.0.0.1',
'local_port' => 40878,
'http_version' => 2,
'protocol' => 1,
'ssl_verifyresult' => 0,
'scheme' => 'HTTP',
'appconnect_time_us' => 0,
'connect_time_us' => 22,
'namelookup_time_us' => 22,
'pretransfer_time_us' => 42,
'redirect_time_us' => 0,
'starttransfer_time_us' => 22827,
'total_time_us' => 22852,
)

Antworten

Zurück zu „Überschuss Steuerung, Anlagenüberwachung, Anbindung an die Heizung, API Schnittstelle und vieles Andere mehr.“