Fritz!Dect301 via AHA-Binding - Mode nicht einstellbar und Fenster-Auf bei Radiator_Mode nicht einstellbar

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
dikay
Beiträge: 12
Registriert: 1. Mär 2020 12:52
Answers: 0

Fritz!Dect301 via AHA-Binding - Mode nicht einstellbar und Fenster-Auf bei Radiator_Mode nicht einstellbar

Beitrag von dikay »

Hallo,

ich nutze an der Fritz!Box 6591 13 x Fritz!Dect 301 Heizungsregler und visualisiere diese via AHA-Binding auf dem Habpanel und via Sitemaps.
Bei AVM steht übrigens das maximal 12 gehen, aber nein, zumindest bei neueren Modellen oder ab 7.x werden auch mehr als 12 unterstützt.

Gesteuert werden diese noch über die Einstellungen in der FritzBox.
Regeln habe ich nur verwendet um mir z.B. anzuzeigen das evtl. noch ein Fenster im Raum x geöffnet sein könnte was ich vom radiator_mode mit dem Status "Fenster-Auf" ableite.

Leider kann ich aber nicht den mode(Manuell, Automatisch, Urlaubsmodus) des Reglers umstellen und auch nicht den Modus "Fenster-Auf" via radiator_mode via Habpanel oder Sitemap einstellen.

In den Logfiles von Openhab sieht man dass diese Einstellung an die Fritz!Box gesendet werden, aber nach ca. 10-20-Sekunden ist wieder der zuvor eingestellte Wert bzw. Modus eingestellt.

Zum mode vermute ich mal, dass das damit Zusammenhängt, dass es für den Fritz!Dect 301-Heizungsregler im Gegensatz z.B. zum Fritz!Dect 201-Aktor keine Möglichkeit in der FritzBox gibt, den Regler manuell zu betrieben und ihn aus der Heimautomation komplett zu steuern.

Warum aber beim radiator_mode(An, Aus, Komfort, Absenk, Boost) einstellbar ist und "Fenster-Auf" nicht eingestellt werden kann, kann ich nicht so ganz nachvollziehen.

Anbei noch die Infos aus dem Event.log:
Der Mode wird von mir per SendCommand oder Sitemap oder Habpanel von AUTOMATIC auf MANUAL gestellt:
2020-04-25 19:18:35.371 [vent.ItemStateChangedEvent] - Mode_Test_Item_Windfang changed from OFF to ON
2020-04-25 19:18:35.371 [ome.event.ItemCommandEvent] - Item 'avmfritz_FRITZ_DECT_301_69a57779_099950357794_mode' received command MANUAL
2020-04-25 19:18:35.402 [nt.ItemStatePredictedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_mode predicted to become MANUAL
2020-04-25 19:18:35.402 [vent.ItemStateChangedEvent] - Mode_Test_Item_Windfang changed from ON to OFF
2020-04-25 19:18:35.402 [ome.event.ItemCommandEvent] - Item 'avmfritz_FRITZ_DECT_301_69a57779_099950357794_mode' received command MANUAL
2020-04-25 19:18:35.418 [vent.ItemStateChangedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_mode changed from AUTOMATIC to MANUAL
2020-04-25 19:18:35.433 [nt.ItemStatePredictedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_mode predicted to become MANUAL

Der Mode wird dann wieder von der Fritz!Box auf AUTOMATIC gestellt:
2020-04-25 19:18:56.893 [vent.ItemStateChangedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_mode changed from MANUAL to AUTOMATIC

Der Radiator_Mode wird von mir per SendCommand oder Sitemap oder Habpanel von COMFORT auf WINDOW_OPEN gestellt:
2020-04-25 19:33:09.897 [vent.ItemStateChangedEvent] - Radiator_Mode_Test_Item_Windfang changed from NULL to ON
2020-04-25 19:33:09.913 [ome.event.ItemCommandEvent] - Item 'avmfritz_FRITZ_DECT_301_69a57779_099950357794_radiator_mode' received command WINDOW_OPEN
2020-04-25 19:33:09.929 [nt.ItemStatePredictedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_radiator_mode predicted to become WINDOW_OPEN
2020-04-25 19:33:09.929 [vent.ItemStateChangedEvent] - Radiator_Mode_Test_Item_Windfang changed from ON to OFF
2020-04-25 19:33:09.944 [ome.event.ItemCommandEvent] - Item 'avmfritz_FRITZ_DECT_301_69a57779_099950357794_radiator_mode' received command WINDOW_OPEN
2020-04-25 19:33:09.944 [vent.ItemStateChangedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_radiator_mode changed from COMFORT to WINDOW_OPEN
2020-04-25 19:33:09.975 [nt.ItemStatePredictedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_radiator_mode predicted to become WINDOW_OPEN

Der Radiator_Mode wird dann wieder von der Fritz!Box auf COMFORT gestellt:
2020-04-25 19:33:58.464 [vent.ItemStateChangedEvent] - avmfritz_FRITZ_DECT_301_69a57779_099950357794_radiator_mode changed from WINDOW_OPEN to COMFORT

Alles andere kann via SendCommand, Sitemap oder Habpanel umgestellt werden und bleibt eingestellt!

Natürlich arbeite ich aktuell mit der Version 2.5.4 von Openhab und die Fritz!Box 6591 hat momentan die aktuellste Beta 7.19, das gleiche hat die offizielle FW 7.13 aber auch gemacht.

Hat jemand von Euch ebenfalls dieses Problem bzw. eine Lösung parat?
Kann es noch an einem Fehler des AHA-Bindings liegen?

Ich hoffe ihr könnt mir weiterhelfen.

Danke im Voraus

Gruß
Dierk

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Fritz!Dect301 via AHA-Binding - Mode nicht einstellbar und Fenster-Auf bei Radiator_Mode nicht einstellbar

Beitrag von peter-pan »

Das ist leider mit einem normalen "sendCommand" oder "postUpdate" nicht machbar, da bestimmte Channels nur informativen Charakter haben und deshalb nur gelesen werden können. Das gilt zum Beispiel auch für den "Fenster auf" Channel. Du kannst hier zwar ein Kommando senden, dass dir dann in der Sitemap angezeigt wird, aber beim nächsten Intervall wieder vom Channel auf den Wert des Thermostats zurück gesetzt wird.
Das "Fenster-auf" funktioniert also nur, wenn der Thermostat das selber merkt(aufgrund eines schnellen Temperaturabfalls), was aber nur gelegentlich passiert, oder du drückst die "Fenster-auf"-Taste am Thermostat(Timer). Evtl. funktioniert das noch mit Fensterkontakten von AVM, wenn's solche gibt.

Ich habe das mit Fensterkontakten von Homematic und per Regel gelöst. Allerdings habe ich hier noch einen Gateway (ccu3) im Einsatz, den ich auch für die Überwachung der Aussentüren und eines Aussentemperatursensors benutze.

Wenn du aber die Thermostate manuell über OH aus- und anschalten willst, geht das auch in der Form, wie ich es mache, halt nicht automatisch.

Hier mal eine(2) Regel(n) als Muster:

Code: Alles auswählen

rule "HM Fenster Status York"
    when
//    Item Dummy4 changed to ON or
    Item HmIP_SWDO_689A_1STATECONTACT changed from "CLOSED" to "OPEN"
    then
        radiator_valve_02_Set_prev.postUpdate(radiator_valve_02_Set.state)
        radiator_valve_02_Mode_prev.postUpdate(radiator_valve_02_Mode.state)
        radiator_valve_02_Mode.sendCommand("OFF")
        logInfo("homematic"," HM Fenster AUF Status York Heizkörper {} prev {}", radiator_valve_02_Mode.state, radiator_valve_02_Mode_prev.state )
end
//===============================================================================
rule "HM Fenster Status York Geschlossen"
    when
//    Item Dummy3 changed to ON or
    Item HmIP_SWDO_689A_1STATECONTACT changed from "OPEN" to "CLOSED"
    then
    if ((radiator_valve_02_Mode_prev.state == "ECO") || (radiator_valve_02_Mode_prev.state == "COMFORT") || (radiator_valve_02_Mode_prev.state == "OFF")) {
        radiator_valve_02_Mode.sendCommand(radiator_valve_02_Mode_prev.state.toString)
        logInfo("homematic"," HM Fenster ZU(ECO,COMFORT) Status York Heizkörper Temp:{}  Modus:{}", radiator_valve_02_Set_prev.state, radiator_valve_02_Mode_prev.state)
    }
    if (radiator_valve_02_Mode_prev.state == "ON") {
        radiator_valve_02_Mode.sendCommand(radiator_valve_02_Mode_prev.state.toString)
        radiator_valve_02_Set.sendCommand(radiator_valve_02_Set_prev.state.toString)
        logInfo("homematic"," HM Fenster ZU(ON) Status York Heizkörper {}", radiator_valve_02_Set.state)
    }
end
Zum Ein- und Ausschalten nimmst du einen Dummy-Switch (ON/OFF). Du benötigst ausserdem noch zwei weitere Items zum Zwischenspeichern deiner aktuellen Werte(_prev) . Ich habe zwar zwei Rules, aber man kann das sicherlich auch in eine packen bzw. der Switch schaltet den Modus ein bzw. wieder aus. Ist halt Geschmackssache. Da ich aber kein Programmierer bin, hab ich's mir einfach gemacht.

Im Wesentlichen passiert Folgendes: Beim Einschalten(Fenster auf), wird der Thermostat ausgeschaltet und die aktuellen Werte für Temperatur und Modus zwischengespeichert (_prev). Beim Ausschalten (Fenster zu), wird in Abhängigkeit vom zuvor eingestellten Modus der Thermostat wieder angeschaltet. Bei den Standardmodi (ECO,COMFORT,OFF) wird dann die entsprechende Vorgabe-Temperatur automatisch gesetzt. Wenn du aber vorher andere(manuelle) Temperaturen eingestellt hattest, wird die vorhergehende Temperatur und der Modus wieder auf "ON" gesetzt.
Was ich hier im Wesentlichen
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
dikay
Beiträge: 12
Registriert: 1. Mär 2020 12:52
Answers: 0

Re: Fritz!Dect301 via AHA-Binding - Mode nicht einstellbar und Fenster-Auf bei Radiator_Mode nicht einstellbar

Beitrag von dikay »

Hallo peter-pan,

danke für deine Ausführungen und Erklärungen.

Da ich keine Fenster-Kontakte habe muss ich mich auf die Fenster-Auf-Erkennung verlassen bzw. die Funktion "Fenster-Auf" am Regler auslösen was wir ja machen.

Wenn man aber das Mal bei einem Regler vergessen haben sollte war die Idee das von dem Handy oder Touch zu machen was ja nicht funktioniert.
Hinter der Funktion "Fenster-Auf" ist ja schon alles hinterlegt was der Regler machen soll.

Natürlich kann ich vom Touch oder Handy den Regler ausschalten, aber dann geht er nicht mehr automatisch in den Komfort-Modus was ich aber noch nicht getestet habe, evtl. beim nächsten Schaltpunkt schon...

Es ist und bleibt seltsam das nur dieser Modus nicht eingestellt werden kann und alle andere Modis(An,Aus, Komfort usw.) auf diesem Kanal eben schon.

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Fritz!Dect301 via AHA-Binding - Mode nicht einstellbar und Fenster-Auf bei Radiator_Mode nicht einstellbar

Beitrag von peter-pan »

...wie gesagt, der Channel ist nur "lesend", es kann also nur der Status abgefragt werden. Ein Eingriff lässt AVM hier leider nicht zu.

Leider geht der Thermostat auch beim nächsten Schaltpunkt nicht in den gewünschten Modus, wenn er auf "OFF" ist. Diese Funktion müsstest du quasi nachbilden, indem du mit einem Timer arbeitest der nach Ablauf den (das) Thermostat wieder einschaltet. Also ein Mix aus den zwei Regeln von mir.

Das mit dem "Fenster auf" schau ich mir nochmal an, da man die anderen Modi ja auch schalten kann. Wobei man aber bei "ON" auch etwas anders arbeiten muss, da hier eine feste Temperatur (bei mir 30 Grad) eingestellt wird, wie eben bei KOMFORT und ECO. Deshalb auch die Unterscheidung in meinen beiden Regeln.

Mal sehen, vielleicht finde ich ja noch etwas heraus.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Fritz!Dect301 via AHA-Binding - Mode nicht einstellbar und Fenster-Auf bei Radiator_Mode nicht einstellbar

Beitrag von peter-pan »

Ich hab mal ein bisschen herumgespielt und zwei kleine Regeln erstellt. Für die erste Regel brauchst du nur ein Dummy-Item als Schalter zum Starten der Regel, so als kleiner Test.

Z.B.:

Code: Alles auswählen

Switch      Dummy1    "Testschalter Dummy1 [%s]"                                  
Switch      Dummy3    "Testschalter Dummy3 [%s]"                                
Die Regeln sehen so aus:
.rules

Code: Alles auswählen

var Timer tFritz = null
var Timer tThermo = null
rule "Test Zimmer lueften manuell"
    when
      Item Dummy1 changed to ON
    then
    if (tFritz !== null) {
      logInfo("test_window","Timer läuft bereits: " + tFritz)
    return;
    }
    logInfo("test_window", "Zimmer wird gelüftet: ")
    radiator_valve_01_Mode.sendCommand("OFF")
    tFritz = createTimer(now.plusSeconds(10), [ | 
    radiator_valve_01_Mode.sendCommand("ECO")
    logInfo("test_window", "Timer tFritz ist abgearbeitet und wird wieder auf \"null\" gesetzt: ")
    tFritz = null
    ])
end

rule "Zimmer lueften manuell"
    when
      Item Dummy3 changed to ON
    then
    if (tThermo !== null) {
      logInfo("test_window","Timer läuft bereits: " + tThermo)
    return;
    }
    logInfo("test_window", "Zimmer wird gelüftet: ")
    if(radiator_valve_01_Mode.state == "OFF" || radiator_valve_01_Mode.state == "WINDOW_OPEN") 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")
    tThermo = createTimer(now.plusMinutes(10), [ | 
      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_Mode)
      }
      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)
      }
    logInfo("test_window", "Timer tFritz ist abgearbeitet und wird wieder auf \"null\" gesetzt: ")
    tThermo = null
    ])
end
Die erste Regel schaltet einfach dein Thermostat aus und nach 10 Sekunden (now.plusSeconds(10)) wieder an.

Für die zweit Regel brauchst du noch zwei witere Items (pro Thermostat) zur Sicherung deiner aktuellen Werte:

Code: Alles auswählen

Number:Temperature  radiator_valve_01_Set_prev  "Temp Büro vorher [%.1f %unit%]"    
String              radiator_valve_01_Mode_prev "Heizkörper Büro Modus vorher[%s]"  
Hier habe ich den Timer mal auf 10 Minuten (now.plusMinutes(10)) einestellt. Das musst du dann halt so machen, wie du es gern möchtest. Den Modus "Boost" habe ich nicht berücksichtigt.

Der Thermostat kann nun mit dem Schalter gesteuert werden und stellt nach Beendigung des Timers den vorherigen Zustand wieder her.

Da ich keine Spezialist mit den Timern bin, wäre es nett, wenn @udo1toni auch noch einen Blick drauf werden könnte.

Du musst nur deine Item-Namen ersetzen und schon kann's losgehen
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Hoehlenbauer
Beiträge: 3
Registriert: 13. Apr 2021 01:56
Answers: 0

Re: Fritz!Dect301 via AHA-Binding - Mode nicht einstellbar und Fenster-Auf bei Radiator_Mode nicht einstellbar

Beitrag von Hoehlenbauer »

peter-pan hat geschrieben: 28. Apr 2020 11:35 ...wie gesagt, der Channel ist nur "lesend", es kann also nur der Status abgefragt werden. Ein Eingriff lässt AVM hier leider nicht zu.

Leider geht der Thermostat auch beim nächsten Schaltpunkt nicht in den gewünschten Modus, wenn er auf "OFF" ist. Diese Funktion müsstest du quasi nachbilden, indem du mit einem Timer arbeitest der nach Ablauf den (das) Thermostat wieder einschaltet. Also ein Mix aus den zwei Regeln von mir.
Ergänzung hierzu: nach meinen Beobachtungen mit der aktuellen 301er-Firmware (04.95) schaltet das Thermostat auch aus dem via OpenHab geschalteten "OFF"-Modus zum nächsten Setpoint-Änderzungszeitpunkt lt. Zeitplan regelhaft um, was bei einem Setup mit Fensterkontakten Vor- und Nachteile hat. Ich habe mal etwas gebastelt, was Fensterkontakte mit erhaltenem Scheduling mit den internen Zeitplänen der 301er zu kombinieren versucht, Details hier: https://community.openhab.org/t/avm-fri ... cts/120641
Die Idee ist, planbasierte oder sonstige Setpoint-Änderungen, während das Fenster noch offen ist, zwischenzuspeichern und danach einzustellen, so dass z.B. die abendliche Umschaltung von "Comfort" auf "Eco" weder bei offenem Fenster zu angeschalteter Heizung führt noch vergessen wird.

Antworten