FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Tutti_Bomovski am 29 Juli 2022, 14:04:33

Titel: [GELÖST] Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 29 Juli 2022, 14:04:33
Hallo Zusammen,
ich stehe ein wenig auf dem Schlauch und hoffe, dass mir vielleicht jemand einen Denkanstoß geben kann.
Ich versuche in meiner FHEM Zentrale einen Rolladenaktor von Homematic zu steuern und damit die Behanghöhe automatisiert je nach Temperatur einzustellen.
Der Rolladenaktor ist in FHEM eingerichtet und lässt sich problemlos steuern.

Ich habe dazu ein DOIF eingerichtet, welches die Temperatur und den Anwesenheitsstatus prüft und dann einen Status setzt.
Ein weiteres DOIF prüft dann den entsprechenden Status und führt die Aktion für den Rolladenaktor aus.
Funktioniert soweit auch gut. Allerdings wird diese Aktion mehrfach ausgeführt, was unerwünscht ist.

Kann mir vielleicht jemand helfen?
Irgendwo habe ich doch sicher einen Denkfehler oder?
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: MadMax-FHEM am 29 Juli 2022, 14:20:17
Ich habe dazu ein DOIF eingerichtet, welches die Temperatur und den Anwesenheitsstatus prüft und dann einen Status setzt.
Ein weiteres DOIF prüft dann den entsprechenden Status und führt die Aktion für den Rolladenaktor aus.

Warum ein DOIF was einen Status setzt, damit ein weiteres DOIF dann etwas ausführt?
Warum nicht einfach statt Status setzen gleich ausführen?


Funktioniert soweit auch gut. Allerdings wird diese Aktion mehrfach ausgeführt, was unerwünscht ist.

Kann mir vielleicht jemand helfen?
Irgendwo habe ich doch sicher einen Denkfehler oder?

Eventuell weil der/die "auslösenden" Events öfter kommen?
-> event-on-change-reading?
https://wiki.fhem.de/wiki/Event-on-change-reading

Ansonsten:
ohne lists der DOIF (und der beteiligten Devices) ist es schwer zu helfen, außer meinem ins Blaue geratenen Hinweis.

Gruß, Joachim
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: rabehd am 29 Juli 2022, 14:25:10
Ich mache das für meine Markise und es reicht ein DOIF.
Wozu ein Status?

Schön, wenn man erzählt was man getan hat, besser man zeigt es auch (List).
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 08 August 2022, 13:51:41
Hallo Zusammen,
vielen Dank für Eure Nachricht.

Hier das DOIF was aus der Temperatur und dem Anwesenheitsstatus den Status setzt und das DOIF was dann aus dem Status die Rollade steuert.

Ich kann es auch kombinieren. Es soll halt "nur" einmal ausgeführt werden.
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: rabehd am 08 August 2022, 14:37:14
Hallo Zusammen,
vielen Dank für Eure Nachricht.

Hier das DOIF was aus der Temperatur und dem Anwesenheitsstatus den Status setzt und das DOIF was dann aus dem Status die Rollade steuert.

Ich kann es auch kombinieren. Es soll halt "nur" einmal ausgeführt werden.

Der Button mit dem # über den Editorfenster ist Dir schon aufgefallen?
Das man mit einem List der Devices besser helfen kann, ist neu für Dich?
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: rabehd am 08 August 2022, 14:41:37
Jedesmal wenn Dein Dummy ein event erzeugt (wo ist das List vom Dummy?) wird der Rollladen um weitere 25% geschlossen.
Das willst Du so?

Einfach mal formulireren, was eigentlich gewünscht ist.
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 08 August 2022, 17:06:43
Jedesmal wenn Dein Dummy ein event erzeugt (wo ist das List vom Dummy?) wird der Rollladen um weitere 25% geschlossen.
Das willst Du so?

Einfach mal formulireren, was eigentlich gewünscht ist.

Ich möchte die Rollade einmalig um 25% öffnen, wenn die Temperatur 23° überschreitet und der Anwesenheit Status "nicht zu Hause" ist.
Der Wert für die Temperatur kommt aus Proplanta. Der Wert für die Anwesenheit aus einem Status.

Reicht das so? und sorry, aber das mit dem List kenne ich nicht.
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Damian am 08 August 2022, 17:22:38
Ich möchte die Rollade einmalig um 25% öffnen, wenn die Temperatur 23° überschreitet und der Anwesenheit Status "nicht zu Hause" ist.
Der Wert für die Temperatur kommt aus Proplanta. Der Wert für die Anwesenheit aus einem Status.

Reicht das so? und sorry, aber das mit dem List kenne ich nicht.

Was heißt "einmalig"?

Einmal und nie wieder wohl kaum :)
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: rabehd am 08 August 2022, 19:36:51
Was heißt "einmalig"?

Einmal und nie wieder wohl kaum :)

 ;D ;D

Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: rabehd am 08 August 2022, 19:38:28
... und sorry, aber das mit dem List kenne ich nicht.

Immer noch nicht?
Man kann einen Beitrag auch bearbeiten, also statt Bilder Code einfügen. ;)
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: MadMax-FHEM am 08 August 2022, 20:08:14
...und sorry, aber das mit dem List kenne ich nicht.

Siehe auch hier: https://forum.fhem.de/index.php/topic,71806.0.html

Da ist der Name Programm ;)

Gruß, Joachim
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 09 August 2022, 08:47:00
naja, einmalig heißt, dass er sobald die Temperatur über 23° ist, das halt einmal durchführt und nicht, wenn die Wetterdaten aktualisiert werden (1. Mal 24°, Aktualisierung Wetter 26°) die Rollade um noch mal 25% hochfährt. Wenn die Temperatur dann natürlich wieder unter 23° geht, soll er es noch mal durchführen.

Das Thema mit List schaue ich mir noch mal an.
Danke für die Ratschläge.
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: MadMax-FHEM am 09 August 2022, 08:49:58
naja, einmalig heißt, dass er sobald die Temperatur über 23° ist, das halt einmal durchführt und nicht, wenn die Wetterdaten aktualisiert werden (1. Mal 24°, Aktualisierung Wetter 26°) die Rollade um noch mal 25% hochfährt. Wenn die Temperatur dann natürlich wieder unter 23° geht, soll er es noch mal durchführen.

Das Thema mit List schaue ich mir noch mal an.
Danke für die Ratschläge.

Ich würde an eine Hysterese denken, nicht dass es mal hin und her schwankt: 23 -> 24 -> 22 (wegen Schatten/Wolken) -> 23 -> 24 usw.

Gruß, Joachim
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: rabehd am 09 August 2022, 09:29:38
naja, einmalig heißt, dass er sobald die Temperatur über 23° ist, das halt einmal durchführt und nicht, wenn die Wetterdaten aktualisiert werden (1. Mal 24°, Aktualisierung Wetter 26°) die Rollade um noch mal 25% hochfährt. Wenn die Temperatur dann natürlich wieder unter 23° geht, soll er es noch mal durchführen.

Das Thema mit List schaue ich mir noch mal an.
Danke für die Ratschläge.

Täglich? Wöchentlich?...
Wann soll es zurückgesetzt werden? Bei unter 23 Grad um 25% runter?
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Thyraz am 09 August 2022, 09:32:16
Genau. Es sollte erstmal klar sein, was programmiert werden soll.
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: MadMax-FHEM am 09 August 2022, 10:22:37
Genau. Es sollte erstmal klar sein, was programmiert werden soll.

Genau.

Sauber formulierte "wenn-dann-Bedingungen" sollten sich ja "leicht" in ein DOIF (oder notify mit if/else) gießen lassen...

Bevor man da nicht sauber durchdacht "fertig" ist, wird das eh nichts gescheites/sauberes...
...bzw. "endloses Gebastel"...

(was nicht heißen soll, dass es gleich zu Beginn 100% "fertig" sein soll/muss und nie mehr angepasst/erweitert werden kann/soll aber zumindest in einem "Formulierungsstand" der schon Sinn macht zu laufen / weitere Anpassungen sollten dann nur noch Optimierungen etc. sein)

Gruß, Joachim
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 09 August 2022, 10:58:56
Vielleicht versuche ich mein Vorhaben hier noch mal zu beschreiben.

Einiges davon habe ich auch schon eingerichtet. Funktioniert halt "nur" nicht zu 100%.

Die Rollade soll, wenn es wärmer als 23° und der Anwesenheitsstatus "nicht zu Hause" ist um 25% nach oben fahren (wenn sie geschlossen ist).
Dazu nutzt mein DOIF die Temperatur aus dem Proplanta und den Anwesenheitsstatus.
Wenn die Temperatur nun wieder unter 23° geht und der Anwesenheitsstatus weiterhin "nicht zu Hause" ist, dann soll die Rollade vollständig schließen.
Wenn der Anwesenheitsstatus "zu Hause" ist, dann passiert einfach nichts.
Wenn in Proplanta nun aufgrund der Updates die Temperatur sich ändert und größer 23° bleibt, dann soll natürlich nicht bei jedem Update in proplante die Rollade wieder um 25% hoch gehen, sondern unverändert so bleiben. Sonst ist sie ja irgendwann komplett offen.

Den Status "Summer" setze ich wie bereits erwähnt durch ein DOIF. Das kann man sicher in einem DOIF kombinieren.

Ich hoffe, das hilft nun noch mal ein wenig weiter bei meinem Vorhaben und sorry nochmal, wenn meine Leitung manchmal etwas länger ist.  8) Ich versuche ja zu lernen. ;)

Internals:
   DEF        ([Summer] eq "warm_nichtzuHause") (set d_RolladeTerrassentuer up 25)
   FUUID      5d1b432e-f33f-8c13-2cb7-8acd877819a68778
   MODEL      FHEM
   NAME       di_Rollade_warmnichtzuHause
   NOTIFYDEV  global,Summer
   NR         239
   NTFY_ORDER 50-di_Rollade_warmnichtzuHause
   STATE      cmd_2
   TYPE       DOIF
   VERSION    26182 2022-06-29 18:57:26
   eventCount 76
   READINGS:
     2022-08-09 10:54:22   Device          Summer
     2022-08-07 17:54:22   cmd             2
     2022-08-07 17:54:22   cmd_event       Summer
     2022-08-07 17:54:22   cmd_nr          2
     2022-08-09 10:54:22   e_Summer_STATE  kalt_zuHause
     2022-07-29 14:13:02   mode            enabled
     2022-08-07 17:54:22   state           cmd_2
   Regex:
     accu:
     collect:
     cond:
       Summer:
         0:
           &STATE     ^Summer$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'Summer','STATE') eq "warm_nichtzuHause"
   do:
     0:
       0          set d_RolladeTerrassentuer up 25
     1:
   helper:
     NOTIFYDEV  global,Summer
     event      kalt_zuHause
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Summer
     timerevent kalt_zuHause
     triggerDev Summer
     timerevents:
       kalt_zuHause
     timereventsState:
       state: kalt_zuHause
     triggerEvents:
       kalt_zuHause
     triggerEventsState:
       state: kalt_zuHause
   hmccu:
   internals:
     all         Summer:STATE
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   group      Rolladensteuerung
   room       Homematic,Sommer

Internals:
   DEF        ([Summer] eq "kalt_nichtzuHause") (set d_RolladeTerrassentuer close)

   FUUID      5d1b51c9-f33f-8c13-f7ea-64794f725ce33a8b
   MODEL      FHEM
   NAME       di_Rollade_kaltnichtzuHause
   NOTIFYDEV  global,Summer
   NR         243
   NTFY_ORDER 50-di_Rollade_kaltnichtzuHause
   STATE      cmd_1
   TYPE       DOIF
   VERSION    26182 2022-06-29 18:57:26
   eventCount 207
   READINGS:
     2022-08-09 10:54:22   Device          Summer
     2022-08-09 01:15:05   cmd             1
     2022-08-09 01:15:05   cmd_event       Summer
     2022-08-09 01:15:05   cmd_nr          1
     2022-08-09 10:54:22   e_Summer_STATE  kalt_zuHause
     2022-06-08 13:20:34   mode            enabled
     2022-08-09 01:15:05   state           cmd_1
   Regex:
     accu:
     collect:
     cond:
       Summer:
         0:
           &STATE     ^Summer$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'Summer','STATE') eq "kalt_nichtzuHause"
   do:
     0:
       0          set d_RolladeTerrassentuer close
     1:
   helper:
     NOTIFYDEV  global,Summer
     event      kalt_zuHause
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Summer
     timerevent kalt_nichtzuHause
     triggerDev Summer
     timerevents:
       kalt_nichtzuHause
     timereventsState:
       state: kalt_nichtzuHause
     triggerEvents:
       kalt_zuHause
     triggerEventsState:
       state: kalt_zuHause
   internals:
     all         Summer:STATE
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   group      Rolladensteuerung
   room       Homematic,Sommer
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: MadMax-FHEM am 09 August 2022, 11:48:19
Zitat
Die Rollade soll, wenn es wärmer als 23° und der Anwesenheitsstatus "nicht zu Hause" ist um 25% nach oben fahren (wenn sie geschlossen ist).

Wenn du die Bedingung aus der Klammer rausnimmst und "ernst" nimmst, dann KANN der Rollo ja gar nicht mehrmals um 25% fahren, selbst wenn das DOIF ausgelöst wird/würde, da ja der Rollo NICHT (mehr) geschlossen ist nach der ersten 25% Fahrt...

Was soll passieren, wenn der Anwesenheitsstatus wechselt?

Weil neben den Bedingungen ist bei DOIF auch wichtig: soll die "Bedingung" ein "Auslöser" sein oder "nur" abgefragt werden!

Also soll, wenn sich der Anwesenheitsstatus ändert was passieren -> dann muss das Ereignis triggern
Soll nichts passieren, sondern "nur" in Abhängigkeit vom aktuellen Zustand das eine oder das andere (oder auch nichts) passieren, dann eben "nur" abfragen, also nicht triggern...

Also für mich sieht das noch nicht "zu Ende" gedacht aus ;)

Gruß, Joachim
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 09 August 2022, 12:11:02
Wenn du die Bedingung aus der Klammer rausnimmst und "ernst" nimmst, dann KANN der Rollo ja gar nicht mehrmals um 25% fahren, selbst wenn das DOIF ausgelöst wird/würde, da ja der Rollo NICHT (mehr) geschlossen ist nach der ersten 25% Fahrt...

Was soll passieren, wenn der Anwesenheitsstatus wechselt?

Weil neben den Bedingungen ist bei DOIF auch wichtig: soll die "Bedingung" ein "Auslöser" sein oder "nur" abgefragt werden!

Also soll, wenn sich der Anwesenheitsstatus ändert was passieren -> dann muss das Ereignis triggern
Soll nichts passieren, sondern "nur" in Abhängigkeit vom aktuellen Zustand das eine oder das andere (oder auch nichts) passieren, dann eben "nur" abfragen, also nicht triggern...

Also für mich sieht das noch nicht "zu Ende" gedacht aus ;)

Gruß, Joachim

Hallo Joachim,
vielen Dank für deine Geduld mit mir.  :)

Außer den beiden Punkten soll er halt "nichts" machen.
Wenn sich der Anwesenheitsstatus ändert, dann soll nichts passieren.
"Nur" die Steuerung der Rollade basierend auf der Temperatur und Status "nicht zu Hause".
Ich hatte ergänzend über die Bedingung "wenn Rollade geschlossen" ist nachgedacht und man kann das mit einbauen.
Dann dürfte ja quasi nicht mehrfach die Rollade bei Update der Temperatur um weitere 25% geöffnet werden.
Variante 1) wenn Temperatur >23° UND Anwesenheit "Nicht zu Hause" UND Rollade "Geschlossen" DANN 25% hoch.

([Temperatur] >23 and [Anwesenheit] eq "nicht zu Hause" and [Rollade] eq "closed") (set Rollade up 25)

Variante 2) wenn Temperatur <23° UND Anwesenheit "Nicht zu Hause" UND Rollade "nicht Geschlossen" DANN 100% schließen.



Danke und Gruß,
Michael
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: rabehd am 09 August 2022, 12:48:19
Jetzt noch aus Variante Zweig machen, dann sieht es für mich schon gut aus und wäre die erste Version des DOIF.
Na ja, die Frage Trigger ja  oder nein fehlt noch.
Trigger wäre für mich nur die Temperatur, der Rest wird nur abgefragt.
([Temperatur] >23 and [?Anwesenheit] eq "nicht zu Hause" and [?Rollade] eq "closed") (set Rollade up 25)
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 10 August 2022, 08:31:07
Jetzt noch aus Variante Zweig machen, dann sieht es für mich schon gut aus und wäre die erste Version des DOIF.
Na ja, die Frage Trigger ja  oder nein fehlt noch.
Trigger wäre für mich nur die Temperatur, der Rest wird nur abgefragt.
([Temperatur] >23 and [?Anwesenheit] eq "nicht zu Hause" and [?Rollade] eq "closed") (set Rollade up 25)

Danke für deine Nachricht.
Ja, die Temperatur soll der Trigger sein. Wenn Anwesenheit oder Rolladenstatus sich ändert soll nichts passieren.

Die Fragezeichen sind dann der entsprechende Hinweis für nur die Abfrage?
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: MadMax-FHEM am 10 August 2022, 08:45:59
Die Fragezeichen sind dann der entsprechende Hinweis für nur die Abfrage?

Ja, steht ja so in der commandref zu DOIF ;)

https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger

Gruß, Joachim
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 10 August 2022, 08:52:01
Ja, steht ja so in der commandref zu DOIF ;)

https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger

Gruß, Joachim

Dankeschön!
Ich hab im Wiki nachgeschaut und die Information nicht gefunden.
Für das nächste Mal dann die Commandref  :)

Ich werde das heute dann mal testen und berichten.

Vielen, vielen Dank für Eure Hilfe bis hier hin!
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: MadMax-FHEM am 10 August 2022, 09:24:33
Ich hab im Wiki nachgeschaut und die Information nicht gefunden.
Für das nächste Mal dann die Commandref  :)

Ich schon ;):
https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen#Ereignisse

Zitat
Alle Auslöser

[?<Auslöserangabe>] Auslöser, die mit Fragezeichen beginnen lösen nicht aus, sie werden nur abgefragt

commandref/DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger


Gruß, Joachim
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 10 August 2022, 09:31:49
Ich schon ;):
https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen#Ereignisse

Gruß, Joachim

Wer lesen kann...  ???
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: frank am 10 August 2022, 10:09:50
@Tutti_Bomovski
mich würde mal der "nutzen/sinn" dieser automation interessieren.

warum lässt du wärme ins haus, wenn keiner da ist?
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 10 August 2022, 13:06:57
@Tutti_Bomovski
mich würde mal der "nutzen/sinn" dieser automation interessieren.

warum lässt du wärme ins haus, wenn keiner da ist?

Ich lasse ja keine Wärme ins Haus.
Wenn wir alle das Haus verlassen, sind die bodentiefen Fensterrolladen zu 100% geschlossen. Gerade auf der Südseite zieht es dann aber die Rollade immer in Mitleidenschaft, wenn es zu warm / heiß wird. Daher öffne ich die Rollade dann minimal einen Spalt breit unten. :) 
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: frank am 11 August 2022, 11:59:47
Zitat
Wenn wir alle das Haus verlassen, sind die bodentiefen Fensterrolladen zu 100% geschlossen. Gerade auf der Südseite zieht es dann aber die Rollade immer in Mitleidenschaft, wenn es zu warm / heiß wird.
interessanter aspekt.
da muss ich meine rollos (180 cm lang) nach der umrüstung auf motorbetrieb wohl genauer beobachten.

Zitat
Ich lasse ja keine Wärme ins Haus.
bei "set rollo up 25" bin ich von 25% öffnen ausgegangen, also etwa ein viertel der fensterfläche.
"ein spalt breit am boden" hört sich dann ganz anders an.

bei meinen rollos öffnen sich zwischen den lamellen schmale schlitze, wenn sie frei hängen.
zur zeit denke ich, jede noch so kleine öffnung des rollos sollte die isolation der fensterfläche verringern und somit den wärmeeintrag erhöhen.  8)
Titel: Antw:Rolladensteuerung über Temperatur steuern
Beitrag von: Tutti_Bomovski am 11 August 2022, 12:18:53
interessanter aspekt.
da muss ich meine rollos (180 cm lang) nach der umrüstung auf motorbetrieb wohl genauer beobachten.

Bei uns hat aufgrund der sommerlichen Hitze (Südseite) die Kunststoffrollade aufgegeben und sich extrem ausgebeult. Wir konnten sie dann nicht mehr einfahren.
Jetzt ist eine neue Rollade (mit Aluverstärkung) drin, aber der Fensterbauer meinte, man solle unten einen Spalt öffnen, wenn es sehr warm ist, das zwischen Glas und Rollade halt auch Luft zirkulieren kann.

Dazu passe ich gerade meine Rolladensteuerung an. Sprich sie soll dann aus dem komplett geschlossenen Zustand, wenn wir nicht zu Hause sind und es wärmer als 23° ist, um 25% nach oben fahren. Damit ist sie aber immer noch zu ~75% geschlossen.