Hallo zusammen.
Ich lese schon eine ganze Weile im Forum mit, nun habe ich mich angemeldet, damit ich Fragen stellen kann,
dennn ich komme nicht weiter.
Ich nutze OpenHab3 auf einem Raspbian Pi4.
Mein Problem ist die Anbindung einer 10 Jahre alten SMA Sunny Webbox.
Ich habe viel im Netz gelesen, aber die Lösungen bezogen sich nicht auf OH3.
Ich kann die RPC Api an von der Pi Console aus abfragen:
curl -X POST --silent -d 'RPC={"version":"1.0","proc":"GetPlantOverview","id":"1","format":"JSON"}' -H 'content-type:text/plain;' http://192.168.178.4/rpc
Die Ergebnisse sehen auch brauchbar aus:
{"format":"JSON","result":{"overview":[
{"unit":"W","meta":"GriPwr","name":"GriPwr","value":"2058"},
{"unit":"kWh","meta":"GriEgyTdy","name":"GriEgyTdy","value":"2.331"},
{"unit":"kWh","meta":"GriEgyTot","name":"GriEgyTot","value":"43923.682"},
{"unit":"","meta":"OpStt","name":"OpStt","value":""},{"unit":"","meta":"Msg","name":"Msg","value":""}]},"proc":"GetPlantOverview","version":"1.0","id":"1"}
Ich habe keine Idee, wo ich denn jetzt in OH3 den curl Befehl einsetze. Im HTTP-Binding klappt das nicht.
Ich hoffe auf Tipps.
Danke und Gruß,
Reiner
SMA Sunny Webbox
- udo1toni
- Beiträge: 13986
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: SMA Sunny Webbox
Doch, tatsächlich sollte das http Binding hier das richtige Werkzeug sein. Das Ding ist halt: Du musst genau wissen, wie Du den RPC korrekt setzt. Eventuell geht es nur mit dem http Binding von Smarthome/J, das kannn einige Dinge, die im Original Addon wohl Probleme bereiten.
Eine mögliche Alternative: Du sammelst die Daten per Script ein und nutzt das Exec Addon. Allerdings ist auch das Exec Binding nicht ohne Tücken, und der ankommende String (das JSON Objekt) enthält Anführungszeichen, was evtl. bei der Übergabe nach openHAB Probleme bereiten könnte.
Eine mögliche Alternative: Du sammelst die Daten per Script ein und nutzt das Exec Addon. Allerdings ist auch das Exec Binding nicht ohne Tücken, und der ankommende String (das JSON Objekt) enthält Anführungszeichen, was evtl. bei der Übergabe nach openHAB Probleme bereiten könnte.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 3
- Registriert: 14. Aug 2023 10:05
Re: SMA Sunny Webbox
Moin,
ich habe das mit http-url getestet, die Logs auf einen Webserver gesendet und von dort dann eingelesen. Da ich habe im http-url es nicht hinbekommen habe eine Einheit an den Wert zu bekommen, habe ich das ganze nochmal neu programmiert und mit mqtt erledigt.
Ich rufe jede Minute folgendes bash Script auf:
Das Passwort zum mqtt-Broker darf kein "!" enthalten, denn das Interpretiert die Bash als Befehlsinterpreter. Zum Glück kann man im mqtt-Broker mehrere Benutzer anlegen, denn ich hatte schon einige Tasmota-Geräte am Broker mit ! im PW angemeldet.
Das passende Thing in OH sieht dann wie folgt aus:
Viel Erfolg mit eurer SMA Webbox, da ich nichts passendes gefunden hatte hoffe ich, dass ich hiermit weiteren Leidensgenossen helfen kann.
ich habe das mit http-url getestet, die Logs auf einen Webserver gesendet und von dort dann eingelesen. Da ich habe im http-url es nicht hinbekommen habe eine Einheit an den Wert zu bekommen, habe ich das ganze nochmal neu programmiert und mit mqtt erledigt.
Ich rufe jede Minute folgendes bash Script auf:
Code: Alles auswählen
#!/bin/bash
#set -xv
host="192.168.178.4"
#Mosquitto Server
host_m="192.168.178.150"
log="/home/rr/sma.json"
#log="/var/www/html//sma.json"
mqu="sma"
mqp=`echo "xxx"`
#echo "$mqu : $mqp"
#exit
#Alive check
ping -c3 "$host" > /dev/null 2>&1
if [ $? != 0 ]
then
#echo "$host not available"
exit 1
fi
# 3 Versuche Datenabfrage
for i in 1 2 3 4 5 6
do
#Wert
cp=$(curl -s http://$host/home.htm | grep Power | awk -F '>' '{print $2}' | awk -F ' ' '{print $1}')
cpe=$(curl -s http://$host/home.htm | grep DailyYield | awk -F '>' '{print $2}' | awk -F ' ' '{print $1}' | sed 's/\,/./g')
cpe_e=$(curl -s http://$host/home.htm | grep DailyYield | awk -F '>' '{print $2}' | awk -F '</td' '{print $1}' | awk -F ' ' '{print $2}')
#Achtung:Wenn als Einheit Wh angegeben ist rechnen wir das in kWh um !
if [ "$cpe_e" = "Wh" ];
then
cpe=`echo "scale=3;$cpe/1000" | bc -l| awk '{printf "%.3f\n", $0}' `
cpe_e="kWh"
fi
cpt=$(curl -s http://$host/home.htm | grep TotalYield | awk -F '>' '{print $2}' | awk -F ' ' '{print $1}' | sed 's/\,/./g')
if [ "$cp" != "" ]
then
DATETIME=`date "+%Y-%m-%d%H:%M:%S"`
mosquitto_pub -h "$host_m" -u "$mqu" -P $mqp -t sma/sb4tl/SENSOR -m "{\"Time\":\"$DATETIME\",\"ENERGY\":{\"Power\":$cp,\"Today\":$cpe,\"Total\":$cpt}}"
exit 0
fi
sleep 1
done
Das Passwort zum mqtt-Broker darf kein "!" enthalten, denn das Interpretiert die Bash als Befehlsinterpreter. Zum Glück kann man im mqtt-Broker mehrere Benutzer anlegen, denn ich hatte schon einige Tasmota-Geräte am Broker mit ! im PW angemeldet.
Das passende Thing in OH sieht dann wie folgt aus:
Code: Alles auswählen
UID: mqtt:topic:mqtt-broker-roett:PV_DACH
label: PV_DACH
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mqtt-broker-roett
location: Attic
channels:
- id: pv_dach_current
channelTypeUID: mqtt:number
label: PV Dach Leistung
description: PV Dach Leistung
configuration:
stateTopic: sma/sb4tl/SENSOR
transformationPattern: JSONPATH:$.ENERGY.Power
unit: W
- id: pv_dach_today
channelTypeUID: mqtt:number
label: PV Dach Tagesertrag
description: PV Dach Tagesertrag
configuration:
stateTopic: sma/sb4tl/SENSOR
transformationPattern: JSONPATH:$.ENERGY.Today
unit: kWh
- id: pv_dach_total
channelTypeUID: mqtt:number
label: PV Dach Ertrag Total
description: PV Dach Ertrag Total
configuration:
stateTopic: sma/sb4tl/SENSOR
transformationPattern: JSONPATH:$.ENERGY.Total
unit: MWh
- udo1toni
- Beiträge: 13986
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: SMA Sunny Webbox
Bitte Code immer als Code markieren, die Forensoftware verändert die Formatierung, was insbesondere bei yaml fatal ist, da yaml Indentation nutzt.
Aber auch sonst trägt es zur Lesbarkeit bei...
Was meinst Du damit?
Aber auch sonst trägt es zur Lesbarkeit bei...
Was meinst Du damit?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 3
- Registriert: 14. Aug 2023 10:05
Re: SMA Sunny Webbox
Damit meinte ich, dass ich mit dem http-Binding zwar Werte auslesen und darstellen konnte, aber leider keine EInheit (W / kWh /MWh) anfügen. Da ich das mit den Tasmota Steckdosen als mqtt Thing konnte, habe ich auf mqtt umprogrammiert.
- udo1toni
- Beiträge: 13986
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: SMA Sunny Webbox
Dafür gibt es den unit Parameter (Voraussetzung: Number Channel). Funktioniert hier einwandfrei mit diversen http Channels
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 169
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: SMA Sunny Webbox
Ich habe eine Sunny Webbox, 16 Jahre alt. Die die aktuelle Leistung, den Tages- und Gesamtertrag hole ich mit dem Modbus - Binding.
Man muss nur Modbus in der Webbox einschalten.
Bin gerade nicht am Rechner, kann aber auf Wunsch Things und Items bereitstellen
Gesendet von meinem HD1900 mit Tapatalk
Man muss nur Modbus in der Webbox einschalten.
Bin gerade nicht am Rechner, kann aber auf Wunsch Things und Items bereitstellen
Gesendet von meinem HD1900 mit Tapatalk
Produktiv: Proxmox mit OH 3.4 und HABApp im LXC-Container
Entwicklung: Proxmox mit OH 4.1 und HABApp im LXC-Container
Entwicklung: Proxmox mit OH 4.1 und HABApp im LXC-Container