Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Auflistung von gewünschten Features, Ausschreibung zur Umsetzung
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von okaegi »

Hallo Zusammen,
folgende Neuerungen hat es in der neusten Nighlty drin:
HTTP devices werden zum Schalten und nur zur Leistungsmessung unterstützt:
Es hat maximal 4 Urls. Zur Leistungsmessung wird als Rückgabe die aktuelle Leistungsaufnahme in Watt erwartet (ganzzahlig).
s1.png
s2.png
Es kann bei dem Aufruf der URL für die Leistungsmessung der aktuelle Überschuss (0 oder positiv) als Parameter mitgegeben werden.

Neue Farben für Smarthomedevices (1 bis 9):
smarthome.png
smarthome.png (7.38 KiB) 4911 mal betrachtet
s3.png
Smarthomedevices wurden in den monthly Chart integriert
s4.png
Die neuen Farben sollten im Thema Standard und in der Logging Daily und Monthly verwendet werden, anderfalls bitte browsercache löschen.
Gruss Oliver
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
Meth
Beiträge: 604
Registriert: Sa Aug 24, 2019 5:59 am

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von Meth »

Genial Oliver !

Geht auch HTTP Signal zum Ein und Ausschalten und Messung über Shelly ?
Letztens wollte das nicht über nehmen da die Zeile dann Rot war und das Speicher nicht ging .
Oder muss ich dann irgenwas in die Zeile der Leistungsmessung schreiben?
23,9 kwp PV , 30,6 kWh BYD HVS Box
2 x 15 kWh BMZ Hyperion
ID3 für meine Frau , ID4 für mich ist bestellt !
1 oWb 2.0 im Hauptverteiler
Je 1 oWb in Garage und Carport
LutzB
Beiträge: 3479
Registriert: Di Feb 25, 2020 9:23 am

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von LutzB »

Meth hat geschrieben: Fr Dez 18, 2020 7:10 am Genial Oliver !

Geht auch HTTP Signal zum Ein und Ausschalten und Messung über Shelly ?
Letztens wollte das nicht über nehmen da die Zeile dann Rot war und das Speicher nicht ging .
Oder muss ich dann irgenwas in die Zeile der Leistungsmessung schreiben?
Oben bei Gerät "Http" auswählen, weiter unten dann "Separate Leistungsmessung" und als Gerät "Shelly".
Die URL für die Leistungsmessung beim ersten Gerät kann dann leer bleiben.
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von okaegi »

LutzB hat geschrieben: Fr Dez 18, 2020 11:27 am
Meth hat geschrieben: Fr Dez 18, 2020 7:10 am Genial Oliver !

Geht auch HTTP Signal zum Ein und Ausschalten und Messung über Shelly ?
Letztens wollte das nicht über nehmen da die Zeile dann Rot war und das Speicher nicht ging .
Oder muss ich dann irgenwas in die Zeile der Leistungsmessung schreiben?
Oben bei Gerät "Http" auswählen, weiter unten dann "Separate Leistungsmessung" und als Gerät "Shelly".
Die URL für die Leistungsmessung beim ersten Gerät kann dann leer bleiben.
Ein Punkt ist hier noch wichtig (nur relevant bei HTTP und separate Leistungsmessung):

Die Url der Leistungsmessung braucht er aus zwei möglichen Gründen:
a) Du willst den aktuellen Überschuss laufend an das Gerät übergeben, damit deine Klimaanlage in Abhängigkeit vom Überschuss deinen Raum kühlt.
Du kannst dann hier den Parameter <openwb-ueberschuss> der zur Laufzeit mit dem aktuellen Überschuss gefüllt wird mitschicken.
b) Openwb fragt laufend mit der Url der Leistungsmessung ab ob das Gerät eingeschaltet ist oder im PV Modus ist und prüft das gegen die Ein/Ausschaltbedinungen.
Bei Http Geräten wird hier nur ein Wert (als Integer) zurück geliefert. Wenn Rückgabe Wert > 50 wird Gerät als angeschaltet oder im PV Modus erkannt, sonst als ausgeschaltet respektive nicht im PV Modus.
Am besten verknüpfst du hier eine URL die den Status deines Gerätes zurück liefert, (z.B. 0 -> Gerät aus, 100 -> Gerät läuft) und machst nachher weiter unten separate Leistungsmessung mit Shelly.


Wenn das deine Klimaanlage nicht hergibt, kannst du dich auch mit folgenden Scripts behelfen. Diese überprüfen was openwb als letztes on oder off Kommando diesem Smarthomedevice geschickt hat (aus dem smarthome_device_2_http.log, bitte device nummer 2 anpassen ).
Gruss Oliver

Leistungsurl
127.0.0.1/cust/teston.php

teston.php
<?php
$command = escapeshellcmd("sudo /bin/bash /var/www/html/cust/teston.sh");
$output = shell_exec($command);
echo $output;
?>

teston.sh

#!/bin/bash
#device nummer anpassen
rel0=$(grep -E 'http off.py devicenr|http on.py devicenr' /var/www/html/openWB/ramdisk/smarthome_device_2_http.log | tail -n 1)
#echo $rel0
temp="${rel0#*http }"
#echo $temp
rel1="${temp%%\.*}"
#echo $rel1
if [[ $rel1 == "on" ]]; then
#device aktiv
echo 100
echo 100 > /var/www/html/openWB/ramdisk/smarthome_device_2_http_status
elif [[ $rel1 == "off" ]]; then
#device läuft nicht
echo 0
echo 0 > /var/www/html/openWB/ramdisk/smarthome_device_2_http_status
else
# not found in log, alten status schicken
oldrel=$(</var/www/html/openWB/ramdisk/smarthome_device_2_http_status)
echo "$oldrel"
fi
sudo chmod 777 /var/www/html/openWB/ramdisk/smarthome_device_2_http_status
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
Meth
Beiträge: 604
Registriert: Sa Aug 24, 2019 5:59 am

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von Meth »

Ok danke teste ich .
Ist das gewollt das man in die Zeilen nichts kopiern kann mit Strg+V ?
23,9 kwp PV , 30,6 kWh BYD HVS Box
2 x 15 kWh BMZ Hyperion
ID3 für meine Frau , ID4 für mich ist bestellt !
1 oWb 2.0 im Hauptverteiler
Je 1 oWb in Garage und Carport
JSAnyone
Beiträge: 291
Registriert: Fr Jun 05, 2020 5:56 pm

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von JSAnyone »

Hallo,
Ich habe die Skripte vom okaegi mal ausprobiert.
Wenn ich das teston.sh Skript manuell starte (sudo /bin/bash /var/www/html/cust/teston.sh) kommt zuerst diese Fehlermeldungen 1006 mal (jede Zeile des Logs):

Code: Alles auswählen

/var/www/html/openWB/ramdisk/smarthome_device_1_http.log: line 1002: 12/19/2020,: No such file or directory
Ich würde das so interpretieren, dass in dem Log nicht wie erwünscht der aktuelle Status steht, dazu aber später mehr.

Dann kommt folgende Fehlermeldung:

Code: Alles auswählen

teston.sh: line 19: /var/www/html/openWB/ramdisk/smarthome_device_1_http_status: No such file or directory
Das File ist tatsächlich nicht in der Ramdisk vorhanden, soll ich es mit touch und entsprechenden Rechten einfach erstellen?

Bei dem sudo chmod war ich mir nicht sicher ob das noch Teil des Skripts ist, hier findet er das File aber natürlich auch nicht. Außerdem war ich mir nicht sicher ob ich für devicenr die Nummer meines Device eintragen soll oder ob man das so lässt, ich habs erstmal so gelassen.

Ich hab dann mal selber in das smarthome_device_1_http.log geschaut, dieses besteht nur aus einer ständigen Wiederholung folgender Meldung:

Code: Alles auswählen

12/19/2020, 10:17:21 http watty.py devicenr 1 orig url http://127.0.0.1/cust/teston.php replaced url http://127.0.0.1/cust/teston.php
Muss das Smarthome-Loglevel auf eine bestimmte Höhe eingestellt sein?

Das Smarthome.log besteht aus einer ständigen Wiederholung folgender Meldung:

Code: Alles auswählen

Sat Dec 19 10:23:10 2020: Conditions Device: 1 Poolpumpe'1relais'
Sat Dec 19 10:23:17 2020: Device http1Poolpumpe Fehlermeldung: [Errno 2] No such file or directory: '/var/www/html/openWB/ramdisk/smarthome_device_ret1'
Sat Dec 19 10:23:17 2020: Conditions Device: 1 Poolpumpe'1relais'
Das Smarthomehandler.log besteht aus einer ständigen Wiederholung folgender Meldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "/var/www/html/openWB/modules/smarthome/http/watt.py", line 30, in <module>
    aktpower = int(urllib.request.urlopen(urlrep, timeout=5).read().decode("utf-8"))
ValueError: invalid literal for int() with base 10: '\n'
Was genau macht das Skript eigentlich? Ich bin davon ausgegangen, dass es den letzten Status des Gerätes aus dem Log lesen will (findet er bei mir nicht) und dann openWB "simuliert" dass das Gerät tatsächlich an/aus ist. Warum schreibt dieses Skript den Status dann in smarthome_device_1_http_status, während watt.py den Status in smarthome_device_ret1 schreibt?
JSAnyone
Beiträge: 291
Registriert: Fr Jun 05, 2020 5:56 pm

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von JSAnyone »

Ich hab des ganze jetzt über das alte Smarthome gelöst, da ist das HTTP-Modul deutlich einfacher, mit einer simplen An Url und einer Aus Url.
Ich teile meine Lösung mal hier, vielleicht nützt sie ja jemand anderem. Die Skripte schreiben einfach eine 0 oder 1 je nach openWB-Gerätestatus in ein festgelegtes Topic in meinen eigenen MQTT-Broker.

Konfiguration des "alten" HTTP-Smarthome-Device:
Einschalt-URL: 127.0.0.1/cust/mqtt_on.php
Ausschalt-URL: 127.0.0.1/cust/mqtt_off.php

In /var/www/html/cust liegen folgende Skripte:

mqtt_on.php
<?php
$command = escapeshellcmd("sudo /bin/python3 /var/www/html/cust/mqtt_on.py");
$output = shell_exec($command);
echo $output;
?>


mqtt_off.php
<?php
$command = escapeshellcmd("sudo /bin/python3 /var/www/html/cust/mqtt_off.py");
$output = shell_exec($command);
echo $output;
?>


mqtt_on.py
import paho.mqtt.client as mqtt
client = mqtt.Client()
client.username_pw_set("Hier MQTT-Username eintragen", "Hier MQTT-Passwort eintragen")
client.connect("Hier IP des MQTT-Brokers eintragen", 1883, 60)
client.publish("Hier MQTT-Topic eintragen", 1)


mqtt_off.py
import paho.mqtt.client as mqtt
client = mqtt.Client()
client.username_pw_set("Hier MQTT-Username eintragen", "Hier MQTT-Passwort eintragen")
client.connect("Hier IP des MQTT-Brokers eintragen", 1883, 60)
client.publish("Hier MQTT-Topic eintragen", 0)
Zuletzt geändert von JSAnyone am So Dez 27, 2020 9:39 pm, insgesamt 2-mal geändert.
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von okaegi »

JSAnyone hat geschrieben: Sa Dez 19, 2020 9:41 am Hallo,
Ich habe die Skripte vom okaegi mal ausprobiert.
Wenn ich das teston.sh Skript manuell starte (sudo /bin/bash /var/www/html/cust/teston.sh) kommt zuerst diese Fehlermeldungen 1006 mal (jede Zeile des Logs):

Code: Alles auswählen

/var/www/html/openWB/ramdisk/smarthome_device_1_http.log: line 1002: 12/19/2020,: No such file or directory
Ich würde das so interpretieren, dass in dem Log nicht wie erwünscht der aktuelle Status steht, dazu aber später mehr.

Dann kommt folgende Fehlermeldung:

Code: Alles auswählen

teston.sh: line 19: /var/www/html/openWB/ramdisk/smarthome_device_1_http_status: No such file or directory
Das File ist tatsächlich nicht in der Ramdisk vorhanden, soll ich es mit touch und entsprechenden Rechten einfach erstellen?

Bei dem sudo chmod war ich mir nicht sicher ob das noch Teil des Skripts ist, hier findet er das File aber natürlich auch nicht. Außerdem war ich mir nicht sicher ob ich für devicenr die Nummer meines Device eintragen soll oder ob man das so lässt, ich habs erstmal so gelassen.

Ich hab dann mal selber in das smarthome_device_1_http.log geschaut, dieses besteht nur aus einer ständigen Wiederholung folgender Meldung:

Code: Alles auswählen

12/19/2020, 10:17:21 http watty.py devicenr 1 orig url http://127.0.0.1/cust/teston.php replaced url http://127.0.0.1/cust/teston.php
Muss das Smarthome-Loglevel auf eine bestimmte Höhe eingestellt sein?

Das Smarthome.log besteht aus einer ständigen Wiederholung folgender Meldung:

Code: Alles auswählen

Sat Dec 19 10:23:10 2020: Conditions Device: 1 Poolpumpe'1relais'
Sat Dec 19 10:23:17 2020: Device http1Poolpumpe Fehlermeldung: [Errno 2] No such file or directory: '/var/www/html/openWB/ramdisk/smarthome_device_ret1'
Sat Dec 19 10:23:17 2020: Conditions Device: 1 Poolpumpe'1relais'
Das Smarthomehandler.log besteht aus einer ständigen Wiederholung folgender Meldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "/var/www/html/openWB/modules/smarthome/http/watt.py", line 30, in <module>
    aktpower = int(urllib.request.urlopen(urlrep, timeout=5).read().decode("utf-8"))
ValueError: invalid literal for int() with base 10: '\n'
Was genau macht das Skript eigentlich? Ich bin davon ausgegangen, dass es den letzten Status des Gerätes aus dem Log lesen will (findet er bei mir nicht) und dann openWB "simuliert" dass das Gerät tatsächlich an/aus ist. Warum schreibt dieses Skript den Status dann in smarthome_device_1_http_status, während watt.py den Status in smarthome_device_ret1 schreibt?
Also das ist so:

Wenn ich das teston.sh Skript manuell starte (sudo /bin/bash /var/www/html/cust/teston.sh) kommt zuerst diese Fehlermeldungen 1006 mal (jede Zeile des Logs):

Code: Alles auswählen

/var/www/html/openWB/ramdisk/smarthome_device_1_http.log: line 1002: 12/19/2020,: No such file or directory
Ich würde das so interpretieren, dass in dem Log nicht wie erwünscht der aktuelle Status steht, dazu aber später mehr.
Deine Fragen:
Die log Datei wird angelegt, wenn der Smarthome device einmal erfolgreich den Einschalturl oder den Ausschalturl durchlaufen hat.
Ebenso wird dann auf der Ramdisk die Datei smarthome_device_1_http_status angelegt.
In dem Beispielscript hättest du die Nummer _2_ durch deine Smarthome Device Nummer ersetzten.
Gruss Oliver
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
JSAnyone
Beiträge: 291
Registriert: Fr Jun 05, 2020 5:56 pm

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von JSAnyone »

Das ich die Nummer _2_ ersetzen muss ist klar und habe ich auch gemacht, fraglich war für mich nur http on.py devicenr, aber das have ich dann ja nicht ersetzt.
okaegi hat geschrieben: Sa Dez 19, 2020 11:31 am Die log Datei wird angelegt, wenn der Smarthome device einmal erfolgreich den Einschalturl oder den Ausschalturl durchlaufen hat.
Ebenso wird dann auf der Ramdisk die Datei smarthome_device_1_http_status angelegt.
Heist erfolgreich, dass bei der on/off URL ein Server erreicht wurde? Weil da habe ich einfach eine bei mir im Netzwerk nicht existierende IP angegeben.
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Re: Smarthome 2.0 Erweiterungen (HTTP Devices, neue Farben, monthly Charts)

Beitrag von okaegi »

Er nimmt nur die Url, die Ip Adresse ist hier nicht relevant.
Gruss Oliver
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
Antworten