*gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Fragen zum Skripten mit ioBroker.javascript
Antworten
surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

*gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 16.04.2018, 17:47

Hallo zusammen,

nächstes Programm, welches ich von meiner CCU in den IO Broker bringen möchte. Ich habe auf meiner CCU zu jedem Heizungsthermostat ein Programm laufen, welches die aktuelle Raumtemperatur ausliest und in die jeweilige Variable schreibt.
Ich habe mal angefangen im Blockly zu bauen, weiß aber nicht, ob das so korrekt ist. Der Trigger sollte eigentlich passen (alle 10 Minuten).
Screenshots vom Homematic Programm und dem Skript, was dort ausgeführt wird, habe ich mit angehangen.
Vielleicht gibt es auch eine elegantere Lösung hierfür?

Gruß surfer ;)
Dateianhänge
Blockly_Heizung.jpg
Skript.jpg
Homematic_Heizung.jpg
Zuletzt geändert von surfer09 am 16.04.2018, 18:09, insgesamt 1-mal geändert.

Benutzeravatar
Dutchman
guru
Beiträge: 2832
Registriert: 07.01.2016, 23:42

Re: Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von Dutchman » 16.04.2018, 17:50

Was machst du den da ?

1) warum alle 10 Minuten, triggerende dich einfach auf Änderung !
2) du hast da nen hometoc Script Code drin das wird nicht gehen

Wen du eine variable schreiben willst nimmst du den Block Update objecten ID mit wert


-------------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****

Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 16.04.2018, 17:56

:roll: Oh weia.. und ich dachte ich wäre mal einmal auf dem richtigen Weg :roll:
Okay, okay ich fang dann mal an. 8-)

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 16.04.2018, 18:00

Bitte einmal um Kontrolle 8-) Ist es so richtig?
Dateianhänge
Temperatur_Skript.jpg

Benutzeravatar
Dutchman
guru
Beiträge: 2832
Registriert: 07.01.2016, 23:42

Re: Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von Dutchman » 16.04.2018, 18:07

Jup, das sieht schon viel besser aus lernst ja schnell :)


-------------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****

Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 16.04.2018, 18:09

:) Danke, aber irgenwann muss man ja mal so ein bisschen kapieren von dem Ganzen. Man muss sich nur damit auseinandersetzen und jemanden haben der einen in die richtige Richtung lenkt ;)

Danke!

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 16.04.2018, 18:35

Hilfe, Hilfe, er zeigt irgendwie noch eine Warnung am im LOG. Die Änderung wird nicht in die Variable geschrieben.
Dateianhänge
LOG.jpg

Benutzeravatar
Dutchman
guru
Beiträge: 2832
Registriert: 07.01.2016, 23:42

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von Dutchman » 16.04.2018, 18:38

surfer09 hat geschrieben:Hilfe, Hilfe, er zeigt irgendwie noch eine Warnung am im LOG. Die Änderung wird nicht in die Variable geschrieben.
Hmm... Schreib den Wert erstmal in eine variable und und Dan die Variable ins objecten.
Eventuell noch convertieren nach Zahl oder Text.

Wen das nicht geht muss ich selber auch erst Mal probieren


-------------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****

Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 16.04.2018, 19:13

Ohjeee. Das bekomme ich ja im Leben noch nicht hin. Kannst du das bitte mal als Beispiel erstellen? Muss auch nicht mehr heute sein..

paul53
guru
Beiträge: 2529
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von paul53 » 16.04.2018, 19:25

surfer09 hat geschrieben:
16.04.2018, 18:35
er zeigt irgendwie noch eine Warnung am im LOG.
Dar Datenpunkt "Temp_Bad" ist nicht vom Typ "Zahl"(number). Das solltest Du im Reiter "Objekte" ändern.
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.2.3, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.6.0, Email 1.0.2, History 1.7.2, Flot 1.7.7, Vis 1.1.1, Web 2.1.9

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 16.04.2018, 19:43

Hallo Paul,

das habe ich gerade gemacht. Der Wert überträgt sich aber trotzdem nicht in die Homematic.
Dateianhänge
Temperatur.jpg
Temperatur.jpg (34.81 KiB) 81 mal betrachtet
Homematic_Temperatur.jpg
Homematic_Temperatur.jpg (12.8 KiB) 81 mal betrachtet

paul53
guru
Beiträge: 2529
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von paul53 » 16.04.2018, 21:09

surfer09 hat geschrieben:
16.04.2018, 19:43
Der Wert überträgt sich aber trotzdem nicht in die Homematic.
Anstelle des Blockes "aktualisiere" muss der Block "steuere" verwendet werden, damit an die CCU gesendet wird.
Du hattest nicht erwähnt, dass es sich bei dem Datenpunkt "Temp_Bad" um eine SV der CCU handelt (man hätte es lediglich anhand des Homematic-Scripts vermuten können).
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.2.3, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.6.0, Email 1.0.2, History 1.7.2, Flot 1.7.7, Vis 1.1.1, Web 2.1.9

paul53
guru
Beiträge: 2529
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von paul53 » 16.04.2018, 22:03

In Deinem HM Script sehe ich, dass Du den Wert in einen String mit einer Nachkommastelle und der Maßeinheit konvertierst. Also ist die SV vom Typ "Zeichenkette" ? Dann muss auch der zugehörige Datenpunkt mit dem Namen "Temp_Bad" vom Typ "Zeichenkette" sein und man muss konvertieren. In Blockly habe ich allerdings keine Möglichkeit gefunden, feste Nachkommastellen vorzugeben. In Javascript geht es:

Code: Alles auswählen

const idSrc = getIdByName('Heizung-Badezimmer:4.ACTUAL_TEMPERATURE');
const idDst = getIdByName('Temp_Bad');

on(idSrc, function(dp) { // Triggern bei Wertänderung
   setState(idDst, dp.state.val.toFixed(1) + ' °C'); // String mit 1 Nachkommastelle und Masseinheit
});
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.2.3, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.6.0, Email 1.0.2, History 1.7.2, Flot 1.7.7, Vis 1.1.1, Web 2.1.9

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 17.04.2018, 16:49

Also den Wert auf "Zahl" umstellen finde ich nicht so gut. Hier werden dann keine Nachkommastellen ausgegeben...
Wie konvertiere ich den Wert über Blockly in eine Zeichenfolge?

paul53
guru
Beiträge: 2529
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von paul53 » 17.04.2018, 16:57

surfer09 hat geschrieben:
17.04.2018, 16:49
Wie konvertiere ich den Wert über Blockly in eine Zeichenfolge?
Etwa so, allerdings ohne feste Zahl der Nachkommastellen
Blockly_numberDP_to_stringDP.JPG
Zuletzt geändert von paul53 am 17.04.2018, 17:00, insgesamt 1-mal geändert.
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.2.3, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.6.0, Email 1.0.2, History 1.7.2, Flot 1.7.7, Vis 1.1.1, Web 2.1.9

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 17.04.2018, 16:59

Ich habe das Element von "aktualisiere" auf "steuere" umgestellt. Jetzt wird der Wert übertragen, allerdings mit mehreren Stellen nach dem Komma. Kann man das noch irgendwie kürzen? 1 Stelle würde ja reichen...
Aktuell ist der Variablenwert auf "Zeichenkette" eingestellt.
Dateianhänge
Skript.jpg
Temp_Bad.jpg

paul53
guru
Beiträge: 2529
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von paul53 » 17.04.2018, 17:04

surfer09 hat geschrieben:
17.04.2018, 16:59
mit mehreren Stellen nach dem Komma. Kann man das noch irgendwie kürzen? 1 Stelle würde ja reichen...
Das ist der Wert als Zahl. Nach der Umwandlung in einen String sind die Nullen nach dem Komma nicht vorhanden. Allerdings wirst Du dann eine oder keine Nachkommastelle haben (z.B. 22 °C).
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.2.3, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.6.0, Email 1.0.2, History 1.7.2, Flot 1.7.7, Vis 1.1.1, Web 2.1.9

surfer09
starter
Beiträge: 85
Registriert: 30.12.2017, 14:07

Re: *gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen

Beitrag von surfer09 » 17.04.2018, 17:19

Ich hab´s hinbekommen. Die Maßeinheit lässt sich in der Homematic hinterlegen, sodass der Wert als Zahl geschrieben werden kann.
Ich habe die Screenshots angehangen, so wie es jetzt funktioniert.

Danke!
Dateianhänge
Variable_Homematic.jpg
Variabe_Wert.jpg
Variabe_Wert.jpg (32.74 KiB) 40 mal betrachtet
Skript_funktioniert.jpg
Temperatur_Bad_funktioniert.jpg

Antworten