Boiler nur 1 mal am Tag Schalten bei Anwesenheit

Begonnen von kinghill, 21 April 2018, 09:31:06

Vorheriges Thema - Nächstes Thema

kinghill

Hallo,

ich würde gerne meinen Boiler nur 1x am Tag für eine bestimmte Zeit Schalten lassen.
Das ganze sollte durch die Anwesenheit meiner Gtags getrickert werden.

Anforderung:

kommt eine Person Heim, wird der Boiler  für x Minuten geschalten.
geht die Person nochmal kurzfristig weg, wird der Baoiler bei 2ter Heimkehr am Tag nicht nochmal geschalten.
Kommt eine weitere Person nach Hause bleibt der Boiler aus, da er ja schon 1 mal an diesem Tag geschalten wurde.

Sprich der Boiler darf nur 1 mal am Tag geschalten werden.
Ist das irgendwie möglich? Ich wäre über Beispiele sehr dankbar. Komme mit der suche im Netz einfach nicht weiter.

Vielen Dank!

Wuehler

Mach dir einen dummy oder userreding, dass du jede Nacht auf true setzt und wenn der boiler einmal angeschmissen wurde auf false.
Bei jedem Heimkommen prüfst du ob das true ist und machst nur dann den boiler an.

CoolTux

#2
So eine ähnliche Anforderung gab es vor einiger Zeit schon mal.
Es wurde einfach abgefragt ob das Device am aktuellen Tag schon einmal geschalten wurde. Thema Reading Timestamp.
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

Otto123

Moin,

und wer DOIF Fan ist, da geht das auch von "Haus" aus.
defmod di_GutenMorgen DOIF ([05:51-11:00] and [LichtBWaSw_02:"on"]) (set Sonos_Bad GroupMute 0)

Schaltet genau einmal in dem Zeitraum [05:51-11:00] egal wie oft LichtBWaSw_02 auf on geht (die zweite Bedingung wahr wird). Es ist auch egal wie man die zweite Bedingung gestaltet: als Event oder Vergleich.

Ich habe da am Anfang lange gebraucht um zu verstehen, dass das einfach so ist. Ich hatte es viel komplizierter gestrickt  ;D
Deswegen fällt mir bei einer solchen Anforderung immer sofort dieses DOIF ein.  ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

#4
Notify


fhem("set Boiler on-for-timer 1200") if( $today ne (split(' ', ReadingsTimestamp('Boiler','state',0)))[0] );
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

kinghill

#5
Hallo,

erst mal vielen Dank für die Antworten.
Ich habe jetzt ein wenig rum Probiert. Komme aber leider nicht zum richtigen Ergebnis:
on-for-timer habe ich ans laufen bekommen.

aber wenn ich folgende Config nutze bekomme ich eine Hash Meldung. Was hat das zu bedeuten? Bzw was mache ich da damit?

define Bad_Boiler_on notify Boiler_Einschalten.on {\
   fhem("set Bad_Boiler on-for-timer 60") if( $today ne (split(' ', ReadingsTimestamp('Bad_Boiler','state',0)))[0] )};;{\
   }

018-04-22 13:24:37 MQTT_DEVICE Bad_Boiler on
2018.04.22 13:24:37 3 : Bad_Boiler_on return value: HASH(0x1a92a10)

Ottos Variante funktioniert leider nur bedingt. Bei erneutem Schalten meines Dummy Switches schält auch der Boiler erneut ein. Die Funktion 1 X am Tag scheint da nicht zu funktionieren.

Danke

CoolTux

Das kann ich unmöglich lesen. Es fehlen die Codetags beim Code. Das ist das Raute Symbol hier beim Forumeditor. Außerdem was sollen die ganzen doppelkomma und Back Slash, das ist nicht das was ich dir gegeben habe.
Erstelle ein notify in FHEMWEB und bearbeite es darüber. Dort fügst du dann meinen Code an der richtigen Stelle ein.

Was sagst ein

{ $today }

In der FHEMWEB Kommandozeile oben eingeben?
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

kinghill

Habe das ganze jetzt über das web if angelegt:

DEF   
Boiler_Einschalten.on { fhem("set Bad_Boiler on-for-timer 60") if( $today ne (split(' ', ReadingsTimestamp('Bad_Boiler','state',0)))[0] );}
NAME
Bad_Boiler_on
NR
75
NTFY_ORDER
50-Bad_Boiler_on
REGEXP
Boiler_Einschalten.on
STATE
2018-04-22 15:32:47
TYPE
notify

Nun sehe ich Log nur das Schalten des Dummys, aber der Boiler wird nicht geschalten:

2018-04-22 15:35:41 dummy Boiler_Einschalten on.

{ $today } gibt das aktuelle Datum aus.



CoolTux

Zitat von: kinghill am 22 April 2018, 15:36:54
Habe das ganze jetzt über das web if angelegt:

DEF   
Boiler_Einschalten.on { fhem("set Bad_Boiler on-for-timer 60") if( $today ne (split(' ', ReadingsTimestamp('Bad_Boiler','state',0)))[0] );}
NAME
Bad_Boiler_on
NR
75
NTFY_ORDER
50-Bad_Boiler_on
REGEXP
Boiler_Einschalten.on
STATE
2018-04-22 15:32:47
TYPE
notify

Nun sehe ich Log nur das Schalten des Dummys, aber der Boiler wird nicht geschalten:

2018-04-22 15:35:41 dummy Boiler_Einschalten on.

{ $today } gibt das aktuelle Datum aus.

Verstehe ich nicht. Schaltest Du den Boiler nicht direkt? Also die Schaltsteckdose? Und bitte bitte Codetage. Ich kann das auf dem Handy sonst nicht lesen.
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

kinghill

Zitat von: CoolTux am 22 April 2018, 15:49:02
Verstehe ich nicht. Schaltest Du den Boiler nicht direkt? Also die Schaltsteckdose? Und bitte bitte Codetage. Ich kann das auf dem Handy sonst nicht lesen.

Ne ich habe das gerade noch über einen Dummy. Damit ich nich andauernd den Home Status wechseln muss. Und das Notify über den Schalter Trickern kann.

Aber glaube nicht das es daran liegt. Habe den Befehl auch schon direkt eingegeben. Der wird Kommentarlos angenommen. Woran sehe ich ob der Notify heute schon einmal geschalten wurde?
Vielleicht bin ich auch einfach nur zu doof oder habe einen Denkfehler.

CoolTux

Im STATE des Notify steht drin ob es heute schon einmal geschalten wurde.

Hast Du den Dummy denn auch on-for-timer beigebracht. Dazu muss man ein Attribut setzen.
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

CoolTux

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

Otto123

Zitat von: kinghill am 22 April 2018, 13:27:45
Ottos Variante funktioniert leider nur bedingt. Bei erneutem Schalten meines Dummy Switches schält auch der Boiler erneut ein. Die Funktion 1 X am Tag scheint da nicht zu funktionieren.
Naja man muss verstehen wann und warum genau einmal geschaltet wird. Ich frage den Event "on" ab. Der logische Zustand des DOIF darf sich  nur einmal ändern.
Wie sieht dein DOIF Versuch aus? Wenn ich es wüsste könnte ich helfen, ohne Info habe ich keine Chance.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuppi68

ich würde das ganze ganz anders angehen :-)

Man nehme in dem Schaltdevice ein zusätzliches Reading auf: z.B. Triggered

setreading <Schaltdevice> Triggered false

bei jedem Heimkommen dann schauen, ob schon getriggered wurde und dann Einschalten UND Triggered auf true setzen ...

und bei jedem Datumswechsel mit einem at einfach das Reading Triggered auf false setzen
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

CoolTux

Du hast schon mein Beispiel gesehen ?
Das sind gerade mal vier fünf Wörter. Noch einfacher geht es ja wohl kaum.
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