NEWS
Funktion im Script lässt sich nicht erstellen
-
@streetracer sagte:
die im Bild 1 zu sehende Funktion einzubinden.
Bild 1 ist unvollständig. Was soll erreicht werden ?
Um in den Auto-Mode zu schalten, genügt
setState(channelId + .'AUTO_MODE', true);
Um andererseits in den Manu-Mode zu schalten, ohne den Sollwert zu ändern, genügt
setState(channelId + '.MANU_MODE', getState(channelId + '.SET_TEMPERATURE').val);
-
Hi Paul.
erreicht werden soll das wenn sich im yahka Adapter die Heizungssteuerung beim Start auf "aus" stellt diese wieder in den Modus "heizen" geht da sie sonst immer wieder manuell eingestellt werden muss.
Anbei noch das vollständige Bild 1:
Swie der Link in den Thrad von damals zum besserern Verständnis: https://forum.iobroker.net/topic/7746/yahka-homematic-heizung/22
Und noch eine Frage meinerseits zum Verständnis:
Muss ich bei "setState(channelId .... noch etwas anpassen oder kann ich das so 1 zu 1 kopieren? Bin noch relativ neu in dem Thema und musste mich mit der Programmierung bisher noch nicht auseinander setzen...
Grüsse Streetracer
-
@streetracer sagte:
Anbei noch das vollständige Bild 1:
Wenn ein Thermostat auf Auto-Mode schaltet, wird noch mal ein Setzen auf Auto-Mode gesendet; ebenso mit Manu-Mode. Welchen Sinn soll das ergeben, den Mode in den gerade umgeschaltet wurde noch mal zu setzen ?
-
@streetracer sagte:
Muss ich bei "setState(channelId .... noch etwas anpassen oder kann ich das so 1 zu 1 kopieren?
Das läßt sich auch ohne Javascript-Funktion bewerkstelligen. Beispiel:
Stellt sich nur die Frage nach dem Sinn (s.o.).
-
@paul53 said in Funktion im Script lässt sich nicht erstellen:
setState(channelId + .'AUTO_MODE', true);
Sinn des ganzen soll sein das das im Homekit die Heizung eben nicht auf "aus" steht wenn man die App neu gestartet hat.
Was mich schon wieder kiire macht:
Auch in Deinem letzten Beispiel steht in dem lilanen Block:
setManuMode mit
channelID
setpointWie zum Geier kommt dieser gesamte lilane Block zustande?
Wenn ich in den Scripten unter "Funktionen" gehe gibt es da nur den schmalen Baustein "setManuMode"... Was hab ich verpasst?
-
@streetracer sagte:
Wie zum Geier kommt dieser gesamte lilane Block zustande?
Im Block ganz links oben auf das Zahnrad klicken, dann kann man die Funktionsparameter rein ziehen und umbenennen.
-
@streetracer sagte:
Sinn des ganzen soll sein das das im Homekit die Heizung eben nicht auf "aus" steht wenn man die App neu gestartet hat.
Ich kenne zwar Homekit nicht, aber was soll das Blockly daran ändern ?
Oder ist es so, dass die "read only"-Datenpunkte .CONTROL_MODE per Homekit geändert werden und damit diese Änderung auch wirksam wird, werden die tatsächlichen Modi durch das Blockly gesetzt ? -
Wie gesagt, bin neu in dem Thema aber soweit ich es verstanden hab soll das Blockly die Datenpunkte setzen.
-
@streetracer
Das sollte auch ohne Funktionen gehen. RegExp triggert auf alle Datenpunkte .CONTROL_MODE:Export:
-
@paul53
ich kann machen was ich will... ich hab Deine Codezeile in der Funktion hinten (siehe roter Kreis) eingegeben. Trotzdem taucht der Rest wie oben beschrieben nicht in der Funktion beim Zahnrad auf...
Auch in den Funktionen links gibt es diese Auswahl nicht.Könntest Du mir Dein Blockly eventuell exportieren und zukommen lassen?
-
@streetracer sagte:
Könntest Du mir Dein Blockly eventuell exportieren und zukommen lassen?
Habe ich im Post vorher mit einem alternativen Blockly (ohne Funktionen) gemacht.
-
sorry, den Spoiler hatte ich übersehen.
Da das Blockly mit dem regExp beim Importieren einen Fehler (nicht bekannt) gebracht hat hab ich jetzt mal testweise auf ein bestimmtes Thermostat abgeändert.
Die Auswahl "control_mode" sollte da ja auch passen, oder?
-
@streetracer sagte in Funktion im Script lässt sich nicht erstellen:
sorry, den Spoiler hatte ich übersehen.
Da das Blockly mit dem regExp beim Importieren einen Fehler (nicht bekannt) gebracht hat hab ich jetzt mal testweise auf ein bestimmtes Thermostat abgeändert.
Die Auswahl "control_mode" sollte da ja auch passen, oder?
Bitte keinen externen Hoster nehmen. ICON Bild hochladen verwenden.
-
@sigi234 said in Funktion im Script lässt sich nicht erstellen:
@streetracer sagte in Funktion im Script lässt sich nicht erstellen:
sorry, den Spoiler hatte ich übersehen.
Da das Blockly mit dem regExp beim Importieren einen Fehler (nicht bekannt) gebracht hat hab ich jetzt mal testweise auf ein bestimmtes Thermostat abgeändert.
Die Auswahl "control_mode" sollte da ja auch passen, oder?
Bitte keinen externen Hoster nehmen. ICON Bild hochladen verwenden.
ok, sorry. Wurstel mich grad noch etwas durchs Forum. Aber ich gelobe Besserung
-
@streetracer sagte:
Blockly mit dem regExp beim Importieren einen Fehler (nicht bekannt) gebracht hat
Alte Version des Javascript-Adapters ?
@streetracer sagte in Funktion im Script lässt sich nicht erstellen:
Die Auswahl "control_mode" sollte da ja auch passen, oder?
Ja.
-
mit dem Script funktioniert es leider nicht. Aktueller Stand:
Wenn ich im Homekit auf "heizen" stelle kann ich die Temperatur wählen und der Status des Thermostats bleibt auf "heizen".
Ändert danach die CCU mittels ihres Automatikprogramms iwas am Thermostat wird dieser Wert nicht ins Homekit übernommen sondern das Thermostat schaltet sich dort auf "aus".
Es muss doch möglich sein das der von der CCU geschaltete Status quasi als Aktualisierung auf den Adapter weitergereicht wird?
-
-
ich versuchs mal anhand der Bilder zu erkären...
auf Bild 1 sieht man die möglichen Statuse des Thermostaten
Normal sollte dieser immer wie im zweiten Bild zu sehen auf "heizen" (siehe Pfeil) stehen. Wenn man das anfangs
da einstellt tut er das auch. Kommt aber ein Signal von der CCU geht der Status auf "Aus" und muss bei der nächsten
Benutzung erst wieder händisch auf "heizen" gestellt werden bevor man dann die Temperatur auswählen kann.Ich hoffe ich konnte es einigermassen rüber bringen....
-
@streetracer sagte:
auf Bild 1 sieht man die möglichen Statuse des Thermostaten
Es handelt sich nicht um HomeMatic-Thermostate ? Dann bin ich raus.
Das Skript im ersten Post enthält typische Datenpunkt-Bezeichner von HomeMatic-Thermostaten. So sieht der CONTROL_MODE bei HomeMatic aus:Parameter CONTROL_MODE
Typ: option
Zugriffsart:- lesend
- über Ereignisse
Werteliste:
0 = AUTO-MODE (Standard)
1 = MANU-MODE
2 = PARTY-MODE
3 = BOOST-MODE -
doch, es handelt sich um ganz normale Homematic-Thermostate. (hatte nur auf der Arbeit keinen Zugriff auf das Homekit
und hab daher Beispielbilder aus dem Netz geladen zur Verdeutlichung was ich meine).Vielleicht hab ich auch im yahka Adapter was übersehen einzustellen...? Dein Script habe ich jedenfalls 1:1 übernommen.