NEWS
*gelöst* Blockly Raumtemperatur aus Heizungsthermostat auslesen
-
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
4867_homematic_heizung.jpg
4867_skript.jpg
4867_blockly_heizung.jpg -
Was machst du den da ?
-
warum alle 10 Minuten, triggerende dich einfach auf Änderung !
-
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
-
-
:roll: Oh weia.. und ich dachte ich wäre mal einmal auf dem richtigen Weg :roll:
Okay, okay ich fang dann mal an. 8-)
-
Bitte einmal um Kontrolle 8-) Ist es so richtig?
4867_temperatur_skript.jpg -
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
-
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!
-
Hilfe, Hilfe, er zeigt irgendwie noch eine Warnung am im LOG. Die Änderung wird nicht in die Variable geschrieben.
4867_log.jpg -
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
-
Ohjeee. Das bekomme ich ja im Leben noch nicht hin. Kannst du das bitte mal als Beispiel erstellen? Muss auch nicht mehr heute sein..
-
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.
-
Hallo Paul,
das habe ich gerade gemacht. Der Wert überträgt sich aber trotzdem nicht in die Homematic.
4867_homematic_temperatur.jpg
4867_temperatur.jpg -
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).
-
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:
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 });
-
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?
-
Wie konvertiere ich den Wert über Blockly in eine Zeichenfolge? `
Etwa so, allerdings ohne feste Zahl der Nachkommastellen -
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.
4867_temp_bad.jpg
4867_skript.jpg -
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). -
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!
4867_temperatur_bad_funktioniert.jpg
4867_skript_funktioniert.jpg
4867_variabe_wert.jpg
4867_variable_homematic.jpg