NEWS
Funktion im Script lässt sich nicht erstellen
-
@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.
-
@streetracer
Der CONTROL_MODE ist kein HeatingCoolingState ! Der HeatingCoolingState zeigt falsche Texte an. -
@paul53 said in Funktion im Script lässt sich nicht erstellen:
HeatingCoolingState zeigt falsche Tex
Was sollte man stattdessen nehmen?Mir fällt nämlich beim Lesen der anderen Threads zu dem Thema gerade auf
das mein Thermostat gar keinen Datenpunkt "HeatingCoolingState" hat. Weder unter :0 noch unter :4 -
@streetracer sagte:
Was sollte man stattdessen nehmen?
Mit dem yahka Adapter kenne ich mich nicht aus.
-
Eigentlich sollte der ja hier iwo zu finden sein...
-
@streetracer
Du brauchst einen zum CONTROL_MODE passenden "State" des yahka Adapters, zumindest einen "State", mit dem man zwischen "Auto" und "Manu" unterscheiden kann. -
@streetracer
Habe mal in den Code für den Adapter geschaut: Dort gibt es eine Konvertierung CONTROL_MODE <--> HeatingCoolingState. Die Konvertierung ist nicht aktiviert !!export class TIoBrokerConversion_HomematicControlMode_To_CoolingState extends TIOBrokerConversionBase implements IConversionFunction { toHomeKit(value: any) { let num = TIOBrokerConversionBase.castToNumber(value) let result = undefined; switch (num) { case 0: result = HAPCharacteristic.TargetHeatingCoolingState.AUTO; break; case 1: result = HAPCharacteristic.TargetHeatingCoolingState.HEAT; break; case 2: result = HAPCharacteristic.TargetHeatingCoolingState.HEAT; break; case 3: result = HAPCharacteristic.TargetHeatingCoolingState.HEAT; break; default: result = HAPCharacteristic.TargetHeatingCoolingState.OFF; break; } this.adapter.log.debug('HomematicDirectionToHomekitHeatingCoolingState.toHomeKit, from ' + JSON.stringify(value) + '[' + (typeof value) + '] to ' + JSON.stringify(result)); return result; } toIOBroker(value) { let num = TIOBrokerConversionBase.castToNumber(value) let result = undefined; switch (num) { case HAPCharacteristic.TargetHeatingCoolingState.OFF: result = 0; break; case HAPCharacteristic.TargetHeatingCoolingState.HEAT: result = 1; break; case HAPCharacteristic.TargetHeatingCoolingState.COOL: result = 0; break; case HAPCharacteristic.TargetHeatingCoolingState.AUTO: result = 0; break; default: result = 0; break; } this.adapter.log.debug('HomematicDirectionToHomekitHeatingCoolingState.toIOBroker, from ' + JSON.stringify(value) + '[' + (typeof value) + '] to ' + JSON.stringify(result)); return result; } }
Auto = "Auto-Mode"
Heat = "Manu-Mode" -
reicht das wenn ich die Konvertierung in dem im Adapter eingebundenen Thermostat einstelle (siehe Bild)
oder muss ich das Script auch noch iwo unterbringen?
Danke tausend Mal für deine Hilfe bisher....!
-
@streetracer sagte:
reicht das wenn ich die Konvertierung in dem im Adapter eingebundenen Thermostat einstelle (siehe Bild)
Ja, dafür ist es da.
@streetracer sagte in Funktion im Script lässt sich nicht erstellen:
oder muss ich das Script auch noch iwo unterbringen?
Nein, der Code, der in meinem Beitrag zu sehen ist, ist ein Auszug aus dem Adapter-Quellcode.