[Gelöst] Über doif drüber schalten

Begonnen von Gorba, 04 März 2018, 17:35:06

Vorheriges Thema - Nächstes Thema

Gorba

Hallo

Ich hab ein DOIF dass bei mir einen DigitalOut0 bei 7°C schaltet und 14°C ausschaltet.
Zusätzlich hab ich ein Dummy der den DigitalOut0 manuell schalten kann.
Habe jetzt aber das Problem, dass wenn ich per dummy ihn schalte und die temp über 14°C kommt mir das doif den DigitalOut0 abschaltet.
Dies möchte ich bei der manuellen Betätigung nicht. Wie programmiere ich das am besten?
Ach und wenn ich schon am fragen bin, wie kann ich im doif die Ausgabe cmd_1 und cmd_2 in einen beliebigen Text umwandeln?

Ich danke schon mal für die Hilfe

Nachtrag
Des weiteren soll das abschalten über den dummy nur den manuellen modus ausstellen. Derzeit wenn das doif einschaltet und ich über dummy ausschalte get der Ausgang DigitalOut0 aus, dass sollte nicht passieren.

KernSani

Bitte list des doif in code tags posten.  Vielleicht auch vom dummy.
Das Attribut um die cmd_1,... zu überschreiben heisst glaube ich cmdState, kannst du in der Doku (commandref) nachlesen.


Kurz, weil mobil...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

rabehd

ZitatDes weiteren soll das abschalten über den dummy nur den manuellen modus ausstellen.

Infos zu verstreuen ist nie hilfreich!
Scheibe mal auf: was Du mit welchen Ergebnisen wie stewuern willst, dann...
Auch funktionierende Lösungen kann man hinterfragen.

Gorba

Es soll bei 7°C den Ausgang DigitalOut0 einschalten und bei 14°C ausschalten (Automatische Steuerung der Heizung)
Ich möchte aber auch manuell an (ohne Temperatur Abschaltung) und ausschalten (ohne die Automatische Steuerung auszuschalten) und dieser Vorgang soll beim Einschalten nicht vom doif wieder ausgeschaltet werden bevor ich manuell wieder ausschalte.

Derzeit hab ich ein doif das super funktioniert und ein Dummy zum schalten.
Aber wenn ich jetzt über Dummy einschalte wenn die Temperatur unter 14°C ist schaltet das doif bei 14°C aus, es soll aber so lange an bleiben bis ich mit dem Dummy wieder ausschalte.
Und wenn ich aus versehen beim Dummy ausschalte wenn die Temperatur   unter 7°C ist geht der Ausgang aus, dass sollte auch nicht sein.

Ich hoffe ist jetzt verständlicher ;)

amenomade

Dann integriere den Zustand des Dummys in der Bedingungen deines DOIFs.
Zeig bitte ein "list" von deinem DOIF und von deinem Dummy.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gorba

DOIF
Internals:
   DEF        ([pix:Sensor0T:] < 15.3) (set pix DigitalOut0 on) DOELSEIF ([pix:Sensor0T:] > 16.5) (set pix DigitalOut0 off)
   NAME       heizen
   NR         45
   NTFY_ORDER 50-heizen
   STATE      Auto_AN
   TYPE       DOIF
   READINGS:
     2018-03-05 15:50:41   Device          pix
     2018-03-05 09:32:04   cmd             1
     2018-03-05 09:32:04   cmd_event       pix
     2018-03-05 09:32:04   cmd_nr          1
     2018-03-05 15:50:41   e_pix_Sensor0T  14.9
     2018-03-04 19:51:47   mode            enabled
     2018-03-05 09:32:04   state           Auto_AN
   Regex:
   condition:
     0          ReadingValDoIf($hash,'pix','Sensor0T') < 15.3
     1          ReadingValDoIf($hash,'pix','Sensor0T') > 16.5
   devices:
     0           pix
     1           pix
     all         pix
   do:
     0:
       0          set pix DigitalOut0 on
     1:
       0          set pix DigitalOut0 off
     2:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Sensor0T: 14.9,Sensor0H: 36.7
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   pix
     timerevent Sensor0T: 14.9,Sensor0H: 36.7
     triggerDev pix
     timerevents:
       Sensor0T: 14.9
       Sensor0H: 36.7
     timereventsState:
       Sensor0T: 14.9
       Sensor0H: 36.7
     triggerEvents:
       Sensor0T: 14.9
       Sensor0H: 36.7
     triggerEventsState:
       Sensor0T: 14.9
       Sensor0H: 36.7
   internals:
   itimer:
   readings:
     0           pix:Sensor0T
     1           pix:Sensor0T
     all         pix:Sensor0T
   trigger:
   uiState:
   uiTable:
Attributes:
   cmdState   Auto_AN|Auto_AUS
   room       Haus


Dummy

Internals:
   NAME       Brenner
   NR         26
   STATE      off
   TYPE       dummy
   READINGS:
     2018-03-04 17:55:49   state           off
Attributes:
   room       Haus
   webCmd     on:off


und die zwei Notify für den Dummy

Internals:
   DEF        Brenner:on set pix DigitalOut0 on
   NAME       Brenner_on
   NOTIFYDEV  Brenner
   NR         27
   NTFY_ORDER 50-Brenner_on
   REGEXP     Brenner:on
   STATE      active
   TYPE       notify
   READINGS:
     2018-03-04 19:41:32   state           active
Attributes:


Internals:
   DEF        Brenner:off set pix DigitalOut0 off
   NAME       Brenner_off
   NOTIFYDEV  Brenner
   NR         28
   NTFY_ORDER 50-Brenner_off
   REGEXP     Brenner:off
   STATE      active
   TYPE       notify
   READINGS:
     2018-03-04 19:41:32   state           active
Attributes:


Nicht wundern Temperaturen sind zum testen anders gesetzt.

Gorba

Um das ausersehen ausschalten der Automatik würde ich ja ein if im Brenner_off Notify einbauen nur bekomme ich das nicht gebacken.
Finde leider nichts passendes über die suche.
Würde gern das haben:

Brenner:off set if heizen Auto_AUS DigitalOut0 off

kann mir da einer weiter helfen

rabehd

#7
Die notifys würde ich ins DOIF integrieren.

ZitatDann integriere den Zustand des Dummys in der Bedingungen deines DOIFs.
scheinst Du außerdem zu ignorieren.
Auch funktionierende Lösungen kann man hinterfragen.

amenomade

([pix:Sensor0T:] < 15.3 and [?Brenner] ne "off")
Irgendwas in der Art
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gorba

danke fur di infos
hab die notify durch doif ersetzt