Dummy State per Notify und Setbefehl übergeben

Begonnen von Manley, 31 März 2018, 18:09:03

Vorheriges Thema - Nächstes Thema

Manley

Hi Leuts.
Ich versuche über einen Dummy, in den ich ein Datum setze, meine Heizung (MAX) in den Urlaubsmodus zu versetzen.
Mittlerweile weiß ich, daß ich PERL zur Hilfe nehmen muss.
Mein Notify sieht bis jetzt so aus.
hz_Urlaubsmodus set Heizung_test desiredTemperatur manual 17 until { InternalVal(hz_Urlaubsmodus,STATE) } 12:00
Es soll einfach nur das Datum (STATE vom Dummy) in den Setbefehl eingefügt werden. Aber PERL ist für mich immer noch ein Buch mit sieben Siegeln :(

Ich hoffe ihr könnt mir weiterhelfen.

MfG
Manley
Wir essen jetzt Opa!
Satzzeichen können Leben retten.

CoolTux

#1
Zitat von: Manley am 31 März 2018, 18:09:03
Hi Leuts.
Ich versuche über einen Dummy, in den ich ein Datum setze, meine Heizung (MAX) in den Urlaubsmodus zu versetzen.
Mittlerweile weiß ich, daß ich PERL zur Hilfe nehmen muss.
Mein Notify sieht bis jetzt so aus.
hz_Urlaubsmodus set Heizung_test desiredTemperatur manual 17 until { InternalVal(hz_Urlaubsmodus,STATE) } 12:00
Es soll einfach nur das Datum (STATE vom Dummy) in den Setbefehl eingefügt werden. Aber PERL ist für mich immer noch ein Buch mit sieben Siegeln :(

Ich hoffe ihr könnt mir weiterhelfen.

MfG
Manley

Gemessen an Deinem Code würde ich auf Schizophrenie tippen  ;D
Was genau soll gemacht werden.
Wenn ich mir viel Mühe gebe und mich dem Freutischen hingeben würde ich sagen es soll die Heizung auf 17 Grad gestellt werden wenn es nicht 12 Uhr ist und so lange bis Zwölf oder die Schleife ??? Keine Ahnung
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

eisman

hi,

hatte ein ähnliches Problem und habe es so gelöst...


defmod RO01ZE DOIF ([[Arbeitszimmer:rollo-zeit-auf]-[Arbeitszimmer:rollo-zeit-zu]] and [Arbeitszimmer:rollo-mode] eq "auto") ({Rollo("Arbeitszimmer","RO01","off")})\
DOELSEIF \
([[Arbeitszimmer:rollo-zeit-zu]-[Arbeitszimmer:rollo-zeit-auf]] and [Arbeitszimmer:rollo-mode] eq "auto") ({Rollo("Arbeitszimmer","RO01","on")})\
DOELSEIF\
([{sunrise("REAL",0,"[Arbeitszimmer:rollo-zeit-auf]","10:00")}] and [Arbeitszimmer:rollo-mode] eq "sonne") ({Rollo("Arbeitszimmer","RO01","off")})\
DOELSEIF\
([{sunset("REAL",0,"16:00","[Arbeitszimmer:rollo-zeit-zu]")}] and [Arbeitszimmer:rollo-mode] eq "sonne") ({Rollo("Arbeitszimmer","RO01","on")})
attr RO01ZE cmdState auf|zu|auf|zu
attr RO01ZE devStateStyle style="color:skyblue;;font-weight:bold;;text-align:right;;"
attr RO01ZE group Rollladen.Zeit
attr RO01ZE icon fts_shutter_automatic@FAB6B6
attr RO01ZE room rollladen,Arbeitszimmer



die Zeiten sind aus einem Dummy
vieleicht kann man das abändern

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Manley

Im Dummy stelle ich das Datum ein, bis zu welchem die Heizkörper in den Urlaubsmodus gehen sollen.

Der Befehl setzt den einen Thermostaten bis zum Datum um 12:00 bei 17 Grad in den Urlaubsmodus.
set Max_xxxxx desiredTemperature manual 17 until 10.04.2018 12:00

Oben habe ich einen Dummy namens Heizung_test benutzt um das Notify zu testen.
Da kommst später mein structure rein der dann alle Heizkörper anspricht.
Wir essen jetzt Opa!
Satzzeichen können Leben retten.

Manley

Danke eisman.
Leider nützt mir das nichts. Ich muss die Zeiten nicht nur auslesen, sondern übergeben.
Ich hatte erst mit $EVENT gearbeitet. Leider wird dann nur das Auslösende Event weitergegeben.
Ich zeig euch lieber nochmal meinen Dummy.
Vielleicht gibt es ja eine einfachere Lösung die schon beim Vorgeben des Datums ansetzt.
defmod hz_Urlaubsmodus dummy
attr hz_Urlaubsmodus group Heizung
attr hz_Urlaubsmodus readingList DD MM YYYY
attr hz_Urlaubsmodus room 9.4_Tests
attr hz_Urlaubsmodus setList DD:01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 MM:01,02,03,04,05,06,07,08,09,10,11,12 YYYY:2018
attr hz_Urlaubsmodus stateFormat DD:MM:YYYY
attr hz_Urlaubsmodus webCmd DD:MM:YYYY
Wir essen jetzt Opa!
Satzzeichen können Leben retten.

CoolTux

#5
Zitat von: Manley am 31 März 2018, 18:37:10
Im Dummy stelle ich das Datum ein, bis zu welchem die Heizkörper in den Urlaubsmodus gehen sollen.

Der Befehl setzt den einen Thermostaten bis zum Datum um 12:00 bei 17 Grad in den Urlaubsmodus.
set Max_xxxxx desiredTemperature manual 17 until 10.04.2018 12:00

Oben habe ich einen Dummy namens Heizung_test benutzt um das Notify zu testen.
Da kommst später mein structure rein der dann alle Heizkörper anspricht.

OK, dann versuchen ich das mal


hz_Urlaubsmodus set Heizung_test desiredTemperatur manual 17 until [hz_Urlaubsmodus] 12:00

Das Teil in den eckigen Klammern nennt sich setMagic und fügt so geschrieben den state des Devices hz_Urlaubsmodus in den set Befehl ein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

eisman

1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

CoolTux

Mache bitte ein list vom Dummy

list hz_Urlaubsmodus

In der FHEMWEB Befehlszeile
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Manley

SetMagic. Na klar.
Das mir das nicht eingefallen ist.
Damit arbeite ich um mir den Status einiger Devices per Telebot zu schicken.
Allerdings musste ich es noch abwandeln in
hz_Urlaubsmodus set Heizung_test desiredTemperatur manual 17 until [hz_Urlaubsmodus:STATE] 12:00

Danke an alle.
Wir essen jetzt Opa!
Satzzeichen können Leben retten.