Steckdose schalten Wochenplan erstellen + Temperatur sensor

Begonnen von trafficlight, 29 Dezember 2017, 20:42:30

Vorheriges Thema - Nächstes Thema

trafficlight

Hallo,

ich denke ich bin hier im anfänger bereich richtig. Habe jetzt schon einiges realisiert jedoch scheitert es nun an folgendes:

Ich möchte eine Steckdose schalten (GHoma) die ich per Wochenplaner "freigeben" kann.
Die Steckdose soll aber abhängig des Temperatursensors von einer Fritzdect200 sein.

Heißt Temperatur ist <18°c und Wochenplan (Montag bis Mittwoch nur von 4Uhr-9Uhr) = Steckdose EIN

Wenn Temperatur >22°c =Steckdose AUS

Wenn Wochenplan (außerhalb der freigabe) = Steckdose bleibt AUS


Habe vieles durchforstet stoße leider immer wieder auf Homematic Thermostaten kann damit leider nichts anfangen.
Lese auch immer viel von DOIF, damit habe ich mich noch nicht beschäftigt.

Wie wäre den der richtige Ansatz

KernSani

Hi,

Notify oder DOIF wäre schonmal der richtige Ansatz. Zeig doch mal was du bisher probiert hast und wo's noch hängt.

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

trafficlight

Leider habe ich noch nicht anfangen können da ich mir nicht sicher bin wie ich zu einem nenner komme.

Was ich mir bis jetzt schon rausgesucht habe ist das "WeekdayTimer widget" und einen beitrag von
Zitathttps://techblog.one/intelligente-fhem-zeitschaltuhr-mit-doif/

ich weiß leider nicht wo ich anfangen soll. Ich möchte ja keine dauerhafte festgelegte zeit haben,
ich möchte diese jederzeit via tabletui definieren können.

KernSani

Fang doch mal langsam an, DOIF und/oder Notify/at (ist größtenteils Geschmackssache was man verwendet) wirst du immer brauchen, wenn du was mit FHEM machst, also schau dir die Einsteigerdoku, das Wiki und die Commandref an, damit solltest du schon recht weit kommen. Im ersten Schritt kannst du ja mit festen Uhrzeiten arbeiten. Wenn das dann funktioniert, kannst du im zweiten Schritt einen Wochenplan mit einfügen.


Grüße,


Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jogi

Hallo,
ich habe mir selbst vor ein paar Tagen mal so was wie eine Zeitschaltuhr gebastelt (ich habe dabei auch einen vorhandenen Code abgeändert), mit der ich Zeiträume und Freigaben vergeben kann.
Das ist nicht 100% das, was du suchst, aber ich denke, es ist eine Basis, die Du so verändern kannst, dass das, was Du willst möglich ist.
Du musst nur noch die Temperatur einbauen und dafür vielleicht was anderes rausschmeißen.
Ich denke, mit DOIF bist du da gut beraten.

Gruß,
Jogi

#                  Zeitschaltuhr
#
#
#    Timer 1
#
define Timer1_d1 DOIF ((["$SELF:P_mybutton: on"] or [[$SELF:P_mybegin,"00:00"]])                                     ## manuell eingeschaltet oder Zeit erreicht\
and [Timer1_d1:EINaktiv] eq "aktiv" and  ## UND Aktiv\
([Timer1_d1:W_tag] eq "Arbeitstage" and !($we)) or                                                                  ##  UND kein Wochenende\
([[$SELF:P_mybegin,"00:00"]]) and [Timer1_d1:EINaktiv] eq "aktiv" and ([Timer1_d1:W_tag] eq "immer") or              ##  ODER Zeit erreicht UND Aktiv UND immer\
([[$SELF:P_mybegin,"00:00"]]) and [Timer1_d1:EINaktiv] eq "aktiv" and ([Timer1_d1:W_tag] eq "Wochenende") and ($we)) ####   ODER Zeit erreicht UND Aktiv UND Wochenende gewünscht und Wochenende\
   (set Wohnzimmer on)\
DOELSEIF ((["$SELF:P_mybutton: off"] or [[$SELF:P_myend,"00:01"]]) and [Timer1_d1:AUSaktiv] eq "aktiv")\
   (set Wohnzimmer off)
attr Timer1_d1 alias Wohnzimmer
attr Timer1_d1 cmdState on|off
attr Timer1_d1 do always
attr Timer1_d1 group Zeitschaltuhr
attr Timer1_d1 readingList P_mybutton P_mybegin P_myend EINaktiv AUSaktiv W_tag
attr Timer1_d1 room 95.Freigaben
attr Timer1_d1 setList P_mybutton:Zeitschaltuhr1,on,off P_mybegin:time P_myend:time EINaktiv:aktiv,deaktiviert AUSaktiv:aktiv,deaktiviert W_tag:Arbeitstage,immer,Wochenende
attr Timer1_d1 sortby 1
attr Timer1_d1 webCmd P_mybutton:P_mybegin:EINaktiv:P_myend:AUSaktiv:W_tag


trafficlight

Danke Jogi zeitschaltuhr läuft bei mir momentan problem los.

Jetzt habe ich wieder zeit gefunden mal nach der Temperatur zuschauen allerdings bekomme ich einen kleinen error:

probiert
([FBDECT_fritzbox_08761_0404840:temperature] < 18.0 C (measured)) (set FBDECT_fritzbox_08761_0404840 on) DOELSEIF ([FBDECT_fritzbox_08761_0404840:temperature] > 22.0 C (measured)) (set FBDECT_fritzbox_08761_0404840 off)

habe das problem das die Fritz Dect dosen mir den wert der temperatur mit z.b. 22 C (measured) ausspucken.

bekomme daduch folgende fehler meldungen:

error

error condition c01: syntax error, line 1, near "20.0 C "

warning condition c01: (Missing operator before C?)

trafficlight

so habe das problem gelöst.

habe nun das modul threshold benutzt dazu ein dummy als thermostat festgelegt. threshold vergleicht ist und soll temp von steckdose und dummy thermostat. anschliessend habe ich weekdaytimer angelegt. um das device also die fritz steckdose zu schalten habe ich mit DOIF eine "und" verknüpfung mit threshold und weekdaytimer erstellt ebenso im aus zustand eine "oder" verknüpfung also wenn threshold oder weekdaytimer aus sind dann aus. threshold und weeksdaytimer gehen jeweils über ein notify auf ein dummy


threshold
defmod Heizungsautomatik THRESHOLD FBDECT_fritzbox_08761_0404840:temperature:0.5:thermostat:state d_hz_auto on\


weekdaytimer
defmod timer_heizung WeekdayTimer n_hz_timer de 12345|03:45|on 12345|21:30|off 60|05:30|on 60|22:00|off


die DOIF verknüpfungen
ODER
defmod or_heizung_off DOIF ([d_hz_auto] eq "off" or [d_hz_timer] eq "currValue: off") (set FBDECT_fritzbox_08761_0404840 off)


UND
defmod und_heizung DOIF ([d_hz_timer] eq "currValue: on" and [d_hz_auto] eq "on") (set FBDECT_fritzbox_08761_0404840 on)


da ich eigentlich über das modul heating control nach 3 nächten und viel kaffe gescheitert bin und meine programmier kenntnisse in fhem sich im maßen halten
konnte ich es so realisieren.  :)

Beta-User

Könnte auch so gehen (ungetestet):
defmod Heizungsautomatik THRESHOLD FBDECT_fritzbox_08761_0404840:temperature:4:22 FBDECT_fritzbox_08761_0404840
Damit hast du erst mal einen Threshold, der die Temperatur mit Hilfe des Aktors  zwischen 18 und 22 Grad halten sollte.

Dann kannst du mit dem WeekdayTimer die "desired" Angabe einfach hin- und herschalten (also z.B. 9 für einen Frostschutz in den inaktiven Zeiten...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors