NEWS
Bash/Shell Script mit ioBroker ersetzen. Sinnvoll?
-
Hallo zusammen,
ich habe mir bisher alles bzgl. ioBroker usw. selbst beibringen können, aber jetzt weiß ich nicht mehr weiter.
Ich habe einen Raspi4 mit ioBroker, influxDB2 und Grafana laufen. Alles jeweils in der aktuellen Version.
Seit 10 Jahren habe ich ein Modul meiner Heizung per USB an einen Raspi und lese dort die Werte aus und übertrage dieses an meine Homematic CCU2 (Zentrale der Haussteuerung). Bis vor 3 Monaten war die CCU der zentrale Datenpunkt für alles. Seit dem ich vor ca. 2 Monaten mit iobroker angefangen hat, ist dieser die Datenzentrale um die sich alles dreht.
Auf dem alten Raspi läuft ein Shell Script alle 5 Minuten ausgeführt wurde, die Heizung ausließt und die Werte an die CCU überträgt.
Ich würde gerne den alten Raspi ablösen (der nur noch deswegen an ist) und das über den neuen Raspi (mit ioBroker machen).
Das Script ist sehr simpel, ein Teil siehe hier:
![4da7c563-b355-455b-ac2b-84d831b60019-image.png](/assets/uploads/files/1647524967617-4da7c563-b355-455b-ac2b-84d831b60019-image.png) code_text ############## ### Puffer ### ############## #HZ_Puffer_TWO (Temperatur Wasser Oben) HZ_Puffer_TWO=`/usr/local/bin/siloader -s | head -n 17 | tail -n 1 | tr -d "TWO: " | cut -d "▒" -f 1`; wget -q "http://192.168.0.12/config/xmlapi/statechange.cgi?ise_id=6412&new_value=$HZ_Puffer_TWO" #HZ_Puffer_TPO (Temperatur Puffer Oben) HZ_Puffer_TPO=`/usr/local/bin/siloader -s | head -n 18 | tail -n 1 | cut -d " " -f 8`; wget -q "http://192.168.0.12/config/xmlapi/statechange.cgi?ise_id=6413&new_value=$HZ_Puffer_TPO" #HZ_Puffer_TPU (Temperatur Puffer Unten) HZ_Puffer_TPU=`/usr/local/bin/siloader -s | head -n 19 | tail -n 1 | cut -d " " -f 8`; wget -q "http://192.168.0.12/config/xmlapi/statechange.cgi?ise_id=6414&new_value=$HZ_Puffer_TPU" #HZ_Puffer_TWU (Temperatur Wasser Unten) HZ_Puffer_TWU=`/usr/local/bin/siloader -s | head -n 20 | tail -n 1 | cut -d " " -f 8`; wget -q "http://192.168.0.12/config/xmlapi/statechange.cgi?ise_id=6415&new_value=$HZ_Puffer_TWU" #HZ_Puffer_TWOS (Temperatur Wasser Oben Soll) HZ_Puffer_TWOS=`/usr/local/bin/siloader -s | head -n 21 | tail -n 1| tr -d "TWOS: " | cut -d "▒" -f 1`; wget -q "http://192.168.0.12/config/xmlapi/statechange.cgi?ise_id=6416&new_value=$HZ_Puffer_TWOS" #HZ_Puffer_TPOS (Temperatur Puffer Oben Soll) HZ_Puffer_TPOS=`/usr/local/bin/siloader -s | head -n 22 | tail -n 1 | tr -d "TPOS: " | cut -d "▒" -f 1`; wget -q "http://192.168.0.12/config/xmlapi/statechange.cgi?ise_id=6417&new_value=$HZ_Puffer_TPOS"
Ich würde die Werte gerne in den ioBroker einpflegen, ohne den Umweg über die CCU und deren Systemvariablen. Kann ich als "Anfänger" mein altes Script ablösen und quasi das Script in ioBroker nachbilden und damit ablösen?
Ich danke auch sehr!
Viele Grüße,
Stefan. -
@brenner-0 sagte in Bash/Shell Script mit ioBroker ersetzen. Sinnvoll?:
Kann ich als "Anfänger" mein altes Script ablösen und quasi das Script in ioBroker nachbilden und damit ablösen?
Wenn du JavaScript kannst ist das kein Problem. Es geht sicher auch mit Blockly und dem request Baustein.
-
@jey-cee Hallo Jey Cee, kann ich leider nicht, ich breche mir ja schon mit den Shell Scripten einen ab...
-
@brenner-0
Es wird die Datei/usr/local/bin/siloader
ausgeführt. Das müsste dann auf dem neuen Raspi erfolgen.
Welche Ausgabe liefert der Aufruf der Datei an die Console?Man kann das Skript auch so modifizieren, dass die Wertübergabe nicht an SV, sondern per Simple-API an ioBroker-Datenpunkte erfolgt.
-
@paul53 So wie unten sieht es aus. Ich schneide mir halt die Einzelwerte raus. Wusste mir nicht anders zu helfen.
root@cacti04:/fhemtocacti# /usr/local/bin/siloader -s ---------------------------------------------------------------- SystaInterface Status & Info SystaComfort or SystaCompact and SystaSolar ---------------------------------------------------------------- Date - Time : 17.03.2022 - 14:44 Info ---- TA: 0.0 ▒C Kesselstatus: Aus TK: 0.0 ▒C Kesselstarts: 20279 PK: 50 % Kessellaufzeit: 17250 h Puffer Heizkreis 1 Heizkreis 2 ------ ----------- ----------- TWO: 64.7 ▒C TI1: 31.3 ▒C TI2: 0.0 ▒C TPO: 64.4 ▒C TV1: 56.2 ▒C TV2: -29.6 ▒C TPU: 62.0 ▒C TR1: 50.7 ▒C TR2: -29.1 ▒C TWU: 34.0 ▒C TV1S: 55.0 ▒C TV2S: 0.0 ▒C TWOS: 65.0 ▒C RT1S: 26.5 ▒C RT2S: 0.0 ▒C TPOS: 75.0 ▒C PHK1: 70 % PHK2: 0 % Solar St▒rung ----- ------- TSA: 23.1 ▒C Kessel : -- TSE: 25.6 ▒C F▒hler : 10 PSO: 0 % Solar : -- Status: Aus (0) Leistung: 0.0 kw Tagesgewinn: 0 kwh Ertrag: 232 kwh root@cacti04:/fhemtocacti#
-
@brenner-0 sagte: Ich schneide mir halt die Einzelwerte raus.
Da bleibt wohl auch nichts anderes übrig. Dann ersetze in Deinem Shell script die Ausgaben an die Simple-API des Web-Adapters (Port 8082). Beispiel:
wget -q "http://192.168.0.xyz:8082/set/0_userdata.0.Heizung.Puffer.TPU?value=$HZ_Puffer_TPU"
-
@paul53 Ok. Danke.
Jetzt überlege ich nur was Sinn macht. iobroker ist zwar jetzt die zentrale IO Basis, aber die Haussteuerung läuft weiterhin über dessen Zentrale (CCU3). Im ioBroker benötige ich die Werte derzeit nur um sie zu visualisieren und von sourceanalytix zu profitieren. In der CCU benötige ich sie um Programmbasiert zu regeln.
Eventuell mache ich es doppelt. Alle paar Sekunden in ioBroker, alle paar Minuten in die CCU.
Mal schauen.
VIELEN HERZLICHEN Dank an dieser Stelle, ich hätte nie erwartet so unglaublich schnell eine Antwort zu erhalten!
-
@brenner-0 sagte: Eventuell mache ich es doppelt. Alle paar Sekunden in ioBroker, alle paar Minuten in die CCU.
Mache es in einem Skript, indem Du es zum Schluss erweiterst um die Ausgabe an ioBroker mittels
setBulk
, da alle Werte offenbar in unterschiedlichen Variablen vorhanden sind.