2 Comet Dect synchronisieren
-
- Beiträge: 13
- Registriert: 18. Feb 2021 20:40
2 Comet Dect synchronisieren
Hallo zusammen,
ich setze seit kurzem openHab 3 und mehrere Comet Dect Thermostate ein. Die Thermostate sind via Dect an die Fritzbox und diese mit dem AVM Binding an openHab angebunden. Als Anzeige hab ich mir mit Habpanel eine Oberfläche zusammengestellt. Damit kann ich die jeweiligen Sollwerte der Thermostate problemlos Steuern. Allerdings hab ich in einem Raum 2 Heizkörper mit entsprechenden Thermostaten. Jetzt habe ich versucht, einen gemeinsamen Sollwert für beide Thermostate zu erzeugen, bzw. ein Thermostat als Master ein zu setzen (Sprich, wenn sich dort der Sollwert irgendwie ändert, soll dieser neue Sollwert an das 2. Thermostat übertragen werden).
Ich habe eine einfache Regel erstellt, welche aber leider nicht funktioniert.
Wo könnte ich bei der Fehlersuche ansetzen?
ich setze seit kurzem openHab 3 und mehrere Comet Dect Thermostate ein. Die Thermostate sind via Dect an die Fritzbox und diese mit dem AVM Binding an openHab angebunden. Als Anzeige hab ich mir mit Habpanel eine Oberfläche zusammengestellt. Damit kann ich die jeweiligen Sollwerte der Thermostate problemlos Steuern. Allerdings hab ich in einem Raum 2 Heizkörper mit entsprechenden Thermostaten. Jetzt habe ich versucht, einen gemeinsamen Sollwert für beide Thermostate zu erzeugen, bzw. ein Thermostat als Master ein zu setzen (Sprich, wenn sich dort der Sollwert irgendwie ändert, soll dieser neue Sollwert an das 2. Thermostat übertragen werden).
Ich habe eine einfache Regel erstellt, welche aber leider nicht funktioniert.
Wo könnte ich bei der Fehlersuche ansetzen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- peter-pan
- Beiträge: 2759
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: 2 Comet Dect synchronisieren
...Ich kenne mich zwar in Blockly nicht aus, aber fehlt da nicht noch ein Trigger ?
Wenn "Kuechenthermostat1_Solltemeratur" sich verändert, dann.....
Wenn "Kuechenthermostat1_Solltemeratur" sich verändert, dann.....
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 13
- Registriert: 18. Feb 2021 20:40
Re: 2 Comet Dect synchronisieren
Den Trigger habe ich übergeordnet gesetzt bzw. unter Rules.
Interessanterweise hab ich noch eine andere Regel erstellt, wobei ich mit einem "virtuellen" Schalter, welcher nur im Habpanel existiert, der Status des Thermostats umgeschalten wird.
Diese Regel funktioniert recht gut, nur der Zugriff auf den Sollwert (Setpoint) funktioniert nicht über die Regeln.
Interessanterweise hab ich noch eine andere Regel erstellt, wobei ich mit einem "virtuellen" Schalter, welcher nur im Habpanel existiert, der Status des Thermostats umgeschalten wird.
Diese Regel funktioniert recht gut, nur der Zugriff auf den Sollwert (Setpoint) funktioniert nicht über die Regeln.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- peter-pan
- Beiträge: 2759
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: 2 Comet Dect synchronisieren
Ich mache etwas ähnliches, mit einer DSL-Rule, wenn ein Fenster geöffnet bzw. geschlossen wird, dabei unterscheide ich noch, welcher Modus beim Öffnen und schliessen gesetzt war. In Abhängigkeit davon, wir dann entweder das Mode-Item oder das Set-Item gesetzt. Allerdings wird dabei der '"State"-Wert übergeben.
Die Regel sieht so aus:
also entweder:
oder
Gibt es so was in Blockly auch bzw. muss man den Status evtl. als Variable zwischenspeichern und dann beim "send Command" die Variable übergeben.
Eigentlich trifft dies auch auf den Vergleich der zwei Items zu.
Wie sieht denn deine Regel in "Code-Schreibweise" aus ? Vielleicht lässt sich daraus etwas ableiten.
Die Regel sieht so aus:
Code: Alles auswählen
rule "Fenster Arbeitszimmer Offen"
when
Item gWindowOffice changed from "CLOSED" to "OPEN"
then
logInfo("Fenster Arbeitszimmer Offen"," Triggering-Item {}", triggeringItem)
if(radiator_valve_01_Mode.state == "OFF") return; // Es sind bereits Fenster offen bzw. der Thermostat ist ausgeschaltet
radiator_valve_01_Set_prev.postUpdate(radiator_valve_01_Set.state)
radiator_valve_01_Mode_prev.postUpdate(radiator_valve_01_Mode.state)
radiator_valve_01_Mode.sendCommand("OFF")
logInfo("Fenster Arbeitszimmer Offen"," radiator_valve_01_Set {}", radiator_valve_01_Set)
end
//===============================================================================
rule "Fenster Arbeitszimmer Geschlossen"
when
Item gWindowOffice changed from "OPEN" to "CLOSED"
then
if ((radiator_valve_01_Mode_prev.state == "ECO") || (radiator_valve_01_Mode_prev.state == "COMFORT") || (radiator_valve_01_Mode_prev.state == "OFF")) {
radiator_valve_01_Mode.sendCommand(radiator_valve_01_Mode_prev.state.toString)
logInfo("Fenster Arbeitszimmer Geschlossen"," radiator_valve_01_Set {}", radiator_valve_01_Set)
}
if (radiator_valve_01_Mode_prev.state == "ON") {
radiator_valve_01_Set.sendCommand(radiator_valve_01_Set_prev.state as Number)
logInfo("Fenster Arbeitszimmer Geschlossen"," radiator_valve_01_Set {}", radiator_valve_01_Set)
}
end
Code: Alles auswählen
radiator_valve_01_Mode.sendCommand(radiator_valve_01_Mode_prev.state.toString)
Code: Alles auswählen
radiator_valve_01_Set.sendCommand(radiator_valve_01_Set_prev.state as Number)
Eigentlich trifft dies auch auf den Vergleich der zwei Items zu.
Wie sieht denn deine Regel in "Code-Schreibweise" aus ? Vielleicht lässt sich daraus etwas ableiten.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 13
- Registriert: 18. Feb 2021 20:40
Re: 2 Comet Dect synchronisieren
Schon mal vielen Dank für Deine Hilfe, ich habe insgesamt so etwas ähnliches vor.
Aber mir fehlt derzeit noch das Hintergrundwissen über die OpenHab Programmierung (bin blutiger Neueinsteiger).
So ich hab gerade herausgefunden wie man den Code angezeigt bekommt. Die Regel wird von OpenHab wie folgt übersetzt:
Aber mir fehlt derzeit noch das Hintergrundwissen über die OpenHab Programmierung (bin blutiger Neueinsteiger).
So ich hab gerade herausgefunden wie man den Code angezeigt bekommt. Die Regel wird von OpenHab wie folgt übersetzt:
Code: Alles auswählen
if ('Kuchenthermostat1_Solltemperatur' != 'Kuechenthermostat2_Solltemperatur') {
events.sendCommand('Kuechenthermostat2_Solltemperatur', 'Kuchenthermostat1_Solltemperatur');
}
- peter-pan
- Beiträge: 2759
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: 2 Comet Dect synchronisieren
Ich kann dir in Blockly leider auch nicht weiter helfen, aber als "normale DSL-Rule", sollte es so funktionieren:
Ich hab's bei mir getestet. Habe auch Comet- und AVM-Thermostate. Damit wird beim Regulieren von Thermostat1 die Solltemperatur von Thermostat2 immer nachgezogen.
Code: Alles auswählen
rule "Kuechenthermostat Synchronisation"
when
Item Kuchenthermostat1_Solltemperatur changed
then
if ( Kuchenthermostat1_Solltemperatur.state != Kuchenthermostat2_Solltemperatur.state) {
Kuchenthermostat2_Solltemperatur.sendCommand(Kuchenthermostat1_Solltemperatur.state)
logInfo("Thermo Sync"," Thermostat2 Küche hat jetzt {} Soll-Temperatur", Kuchenthermostat2_Solltemperatur.state ) // test - kann auskommntiert oder gelöscht werden
}
end
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 13
- Registriert: 18. Feb 2021 20:40
Re: 2 Comet Dect synchronisieren
Ich danke Dir erstmal für Deinen Code. Leider hat auch dieser keine Wirkung gezeigt.
Langsam hab ich das Gefühl, dass mit meiner OpenHab Installation etwas nicht in Ordnung ist (3.0.0). Ich habe zusätzlich noch Probleme mit dem Einbinden von MQTT Sensoren (Messwerte werden nur unregelmäßig erfasst) und der Fernzugriff über SSH hat von Anfang an nicht funktioniert.
Daher denke ich mal, dass es sinnvoller ist, das Ganze neu aufzusetzen und zwar mit der neuen Version 3.0.1.
Langsam hab ich das Gefühl, dass mit meiner OpenHab Installation etwas nicht in Ordnung ist (3.0.0). Ich habe zusätzlich noch Probleme mit dem Einbinden von MQTT Sensoren (Messwerte werden nur unregelmäßig erfasst) und der Fernzugriff über SSH hat von Anfang an nicht funktioniert.
Daher denke ich mal, dass es sinnvoller ist, das Ganze neu aufzusetzen und zwar mit der neuen Version 3.0.1.
-
- Beiträge: 13
- Registriert: 18. Feb 2021 20:40
Re: 2 Comet Dect synchronisieren
So ich hab das OpenHab 3 jetzt mal neu aufgesetzt (Version 3.0.1).
Es hat sich bei der Installation immer noch etwas eigenartig verhalten (beim ändern des Passwort gab es eine Fehlermeldung, dass das PW nicht geändert werden konnte, aber er hat es trotzdem übernommen).
Immerhin hat es diesmal von Anfang an mit dem SSH funktioniert und ich konnte die Einrichtung über meinen Laptop durchführen.
Inzwischen hab ich mir auch mit Pages eine Seite für meine Küche gebaut und natürlich die Skripte wieder hinzugefügt.
Leider ist das Ergebnis wie gehabt (kein Skript funktioniert).
Was mir allerdings aufgefallen ist, zum eine das HabPanel ist aus irgendeinem Grund erhalten geblieben, da stellt sich mir die Frage, wo ist das gespeichert?
Anderseits ist auffällig, dass eine Steuerung der Sollwerte mittels Slider nur am HabPanel funktioniert, aber nicht über die unter Pages angelegte Seite.
Da stellt sich mir die Frage, ob ich für die Skripte und/oder Pages noch etwas konfigurieren muss, damit das funktioniert?
Die MQTT Geschichte hab ich noch nicht wieder installiert, bei der vorherigen Version (3.0.0) konnte man das mit der Ersteinrichtung des PW zusammen installieren, diesen Punkt hab ich im jetzigen Dialog nicht gesehen. Werd daher den Mosquitto wohl manuell installieren müssen.
Es hat sich bei der Installation immer noch etwas eigenartig verhalten (beim ändern des Passwort gab es eine Fehlermeldung, dass das PW nicht geändert werden konnte, aber er hat es trotzdem übernommen).
Immerhin hat es diesmal von Anfang an mit dem SSH funktioniert und ich konnte die Einrichtung über meinen Laptop durchführen.
Inzwischen hab ich mir auch mit Pages eine Seite für meine Küche gebaut und natürlich die Skripte wieder hinzugefügt.
Leider ist das Ergebnis wie gehabt (kein Skript funktioniert).
Was mir allerdings aufgefallen ist, zum eine das HabPanel ist aus irgendeinem Grund erhalten geblieben, da stellt sich mir die Frage, wo ist das gespeichert?
Anderseits ist auffällig, dass eine Steuerung der Sollwerte mittels Slider nur am HabPanel funktioniert, aber nicht über die unter Pages angelegte Seite.
Da stellt sich mir die Frage, ob ich für die Skripte und/oder Pages noch etwas konfigurieren muss, damit das funktioniert?
Die MQTT Geschichte hab ich noch nicht wieder installiert, bei der vorherigen Version (3.0.0) konnte man das mit der Ersteinrichtung des PW zusammen installieren, diesen Punkt hab ich im jetzigen Dialog nicht gesehen. Werd daher den Mosquitto wohl manuell installieren müssen.
-
- Beiträge: 13
- Registriert: 18. Feb 2021 20:40
Re: 2 Comet Dect synchronisieren
Nach dem ich jetzt rausgefunden habe, wie man die Log's einsehen kann hab ich mal einen Auszug.
Die Regel wird offenbar doch ausgeführt, aber offensichtlich gibt es eine Typ Unverträglichkeit.
Wie kann ich das auflösen? - Hab es doch noch gelöst!
Falls jemand noch eine bessere oder "sauberere" Lösung hat, bin ich für Hinweise dankbar.
Code: Alles auswählen
2021-02-21 14:25:25.024 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'e8d2c3e0f1' failed:
if ( CometDECT3_Solltemperatur != CometDECT2_Solltemperatur) {
CometDECT2_Solltemperatur.sendCommand(CometDECT3_Solltemperatur)
//logInfo("Thermo Sync"," Thermostat2 Küche hat jetzt {} Soll-Temperatur", CometDECT2_Solltemperatur ) // test - kann auskommntiert oder gelöscht werden
}
Type mismatch: cannot convert from NumberItem to String; line 3, column 116, length 25
Wie kann ich das auflösen? - Hab es doch noch gelöst!
Code: Alles auswählen
if ( CometDECT3_Solltemperatur != CometDECT2_Solltemperatur) {
var double Temp = (CometDECT3_Solltemperatur.state as Number).doubleValue()
CometDECT2_Solltemperatur.sendCommand(Temp)
}
-
- Beiträge: 28
- Registriert: 4. Feb 2018 17:10
Re: 2 Comet Dect synchronisieren
Die einfachste Methode dafür wäre ein follow profile für das 2.Thermostat.
Code: Alles auswählen
Number Solltemperatur_Wohn2 {channel="innogysmarthome:RST:innogy:Wohn2:set_temperature", channel="innogysmarthome:RST:innogy:Wohn1:set_temperature" [profile="follow"]}