(GELÖST) wieviel darf im at DEF drin sein?

Begonnen von misux, 25 Februar 2018, 22:20:32

Vorheriges Thema - Nächstes Thema

misux

HI!
Ich versuche mir meine Hausbeleuchting zu basteln und stoße auf Widerstand... Wieviele Zeilen dürfen da rein?

ich möchte in der Woche morgens um 5 wenn noch kein Sonnenaufgang war lichter schalten aber wenn Sonnenaufgang war sollen diese aus bleiben...

Wie bringe ich es meiner DEF bei das diese nur schalten soll wenn noch kein Sonnenaufgang war? Also Vorm Sonnenaufgang soll es schalten aber nicht danach...

Wäre es vielleicht einfacheer mit einem dummy zu arbeiten der mir signalisiert das Sonnenaufgang aus oder an ist und dann sich darauf beziehen?
Vielen Dank!

hier mein DEF aus der normalschicht:


*05:00:00 { if(!$we) { fhem("set KuechenTisch on-till 05:45:00;set Deckenfluter on") }}
*05:00:00 { if sunrise() { fhem("set Fensterbeleuchtung on-till sunrise() ;set Hausbeleuchtung off") }}

Otto123

Hi,

ich verstehe das Thema und deine erste Frage nicht.
Aber ich würde es mit einem DOIF machen.
So in der Artdefmod di_LichtAblauf DOIF ([06:10-{sunrise_abs("REAL",0,"6:11","10:00")}] or [{sunset("REAL")}-22:00])((set SW01_Sw02,LichtKu.* on)) DOELSE ((set SW01_Sw02,LichtKu.* off))


Nur als Vorschlag ...
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

misux

defmod di_LichtAblauf DOIF ([06:10-{sunrise_abs("REAL",0,"6:11","10:00")}] or [{sunset("REAL")}-22:00])((set SW01_Sw02,LichtKu.* on)) DOELSE ((set SW01_Sw02,LichtKu.* off))

HI! In deinem Fall würde doh das Licht um 06:10 morgens zum Sonnenaufgang, aber nicht vor 06:11 und nicht nach 10:00 Uhr ON gehen. Ansonsten geht sie aus... Richtig?

In meinem Fall soll die Lampe um 5 on gehen aber NICHT wenn der Sonnenaufgang schon war... Dann soll sie aus bleiben.   :-\

Oh mann... Ich bin zu doof dafür... das war mit dem Lightmanager n kleines bisschen einfacher...

CoolTux

Ich muss da mal vorsichtig fragen, Dein obiger Code, wolltest Du den in ein at reinmachen?
Oder waren das nur 2 Beispiele die nicht geklappt haben?
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

Wuehler

Moin,

so etwas ähnliches habe ich auch ;-) Am Wochenende geht die Lampe ebenfalls nicht an. Aus geht sie bei Sonnenaufgang.

*06:20:00 {
  if ( !(isday()) ) {
    if ( !($we) ) {
      fhem("set Lampe on-till ".sunrise("HORIZON=1") );
    }
  }
}

Frank_Huber



Zitat von: misux am 27 Februar 2018, 01:17:19
defmod di_LichtAblauf DOIF ([06:10-{sunrise_abs("REAL",0,"6:11","10:00")}] or [{sunset("REAL")}-22:00])((set SW01_Sw02,LichtKu.* on)) DOELSE ((set SW01_Sw02,LichtKu.* off))

HI! In deinem Fall würde doh das Licht um 06:10 morgens zum Sonnenaufgang, aber nicht vor 06:11 und nicht nach 10:00 Uhr ON gehen. Ansonsten geht sie aus... Richtig?

In meinem Fall soll die Lampe um 5 on gehen aber NICHT wenn der Sonnenaufgang schon war... Dann soll sie aus bleiben.   :-\

Oh mann... Ich bin zu doof dafür... das war mit dem Lightmanager n kleines bisschen einfacher...
Soll das Licht nur angehen? Wer schaltet es wann wieder aus? Manuell? Von Hand? Der doif?
Beschreib doch mal genau was es machen soll...

Mit dem Handy online, daher kurz gefasst...


misux

Es soll nur an gehen, jeden Tag um 5 aber NICHT nach dem Sonnenaufgang.
Anders gesagt : Es soll immer um 5 an gehen es seidenn es ist schon Sonnenaufgang gewesen, dann soll es aus bleiben.

Die Ausinstanz erledigt ein anderer Befehl...

Bin schon fast soweit das ich einen dummy TAG /NACHT  baue. Und dann das Licht um 5 einschalten lasse NUR wenn der dummy TAG/NACHT auf nacht steht. Die Umschaltung des dummy TAG/NACHT erledigt dann ein Sunrise/sunset at Befehl. Vielleicht ist das einfacher

CoolTux

Zitat von: Wuehler am 27 Februar 2018, 07:05:24
Moin,

so etwas ähnliches habe ich auch ;-) Am Wochenende geht die Lampe ebenfalls nicht an. Aus geht sie bei Sonnenaufgang.

*06:20:00 {
  if ( !(isday()) ) {
    if ( !($we) ) {
      fhem("set Lampe on-till ".sunrise("HORIZON=1") );
    }
  }
}


*06:20:00 { fhem("set Lampe on-till ".sunrise("HORIZON=1") ) if( !(isday()) and !($we) ) }

Macht ihn Übersichtlicher und schöner





Das hier sollte dem Threadersteller helfen

*05:00:00 { if(!$we) {
              fhem("set KuechenTisch on-till 05:45:00;set Deckenfluter on");
       }
       if( sunrise() ) {
               fhem("set Fensterbeleuchtung on-till sunrise() ;set Hausbeleuchtung off");
      }
}
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

Wuehler

@misux: Wenn es nur angehen soll ersetze on-till durch on. Wenn es das nicht ist, verstehe ich deine Frage wohl nicht richtig, oder du die Antworten.
@cooltux: das war mein allererstes notify damals in fhem. Da konnte ich perl noch gar nicht  ;D ;)

CoolTux

Zitat von: Wuehler am 27 Februar 2018, 09:23:13
@cooltux: das war mein allererstes notify damals in fhem. Da konnte ich perl noch gar nicht  ;D ;)

Solche Teile habe ich auch noch zu Hauf in meiner Installation  ;D
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

misux

Ok. Das klingt gut aber da ich die Vorgehensweise des Fhem noch nicht gut genug kenne muss ich anders fragen:

Das hier sollte dem Threadersteller helfen

*05:00:00 { if(!$we) {
              fhem("set KuechenTisch on-till 05:45:00;set Deckenfluter on");
       }
       if( sunrise() ) {
               fhem("set Fensterbeleuchtung on-till sunrise() ;set Hausbeleuchtung off");
      }
}

[/quote]

Was passiert wenn sunrise um 4:45 ist? Wird dann trotzdem die Fensterbeleuchtung um 5 geschaltet?

Vielleicht kapiere ich es dann....  ::)

CoolTux

Zitat von: misux am 27 Februar 2018, 09:57:41
Ok. Das klingt gut aber da ich die Vorgehensweise des Fhem noch nicht gut genug kenne muss ich anders fragen:

Das hier sollte dem Threadersteller helfen

*05:00:00 { if(!$we) {
              fhem("set KuechenTisch on-till 05:45:00;set Deckenfluter on");
       }
       if( sunrise() ) {
               fhem("set Fensterbeleuchtung on-till sunrise() ;set Hausbeleuchtung off");
      }
}



Was passiert wenn sunrise um 4:45 ist? Wird dann trotzdem die Fensterbeleuchtung um 5 geschaltet?

Vielleicht kapiere ich es dann....  ::)

Nein. Das ganze macht auch wenig Sinn. Zu mindest was die Sunrise Geschichte an geht. Versuche mal bei sochen Dingen Ereignisbasiert zu denken.
Was willst Du? Wenn die Sonne auf gegangen ist soll die Fensterbeleuchtung an gehen und die Hausbeleuchtung aus.
Was den on-till Befehl an geht glaube ich das der nicht geht, bin mir da aber unsicher.

Suche mal bitte im Wiki nach Sunrise da gibt es einen tollen Artikel wie man at mit sunrise anlegen kann. So das die Uhrzeit von Sunrise automatisch als at Uhrzeit genommen wird.
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 misux,

bevor Du einen Dummy anlegst, schon zigfach erwähnt aber von Dir nicht wahrgenommen:
isday()
Sagt Dir ob Tag oder Nacht ist!

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

Otto123

#13
Um nochmal im Code zu denken:
at
*05:00:00 { fhem("set Lampe on") if(!isday()) }
DOIF falls Du mehr reinpacken willst, das erscheint mir dann im DOIF immer irgendwie einfacher
([05:00] and !isday())(set Lampe on)
Siehe auch
Sollte genau das tun was Du oben in #6 beschrieben hast: Licht ab 5 aber nicht wenn schon Tag ist.

Aber wie gesagt, ich verstehe im noch das Thema und den ersten post nicht.  :-[
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

misux

Zitat von: Otto123 am 27 Februar 2018, 11:49:01
Um nochmal im Code zu denken:
at
*05:00:00 { fhem("set Lampe on") if(!isday()) }
DOIF falls Du mehr reinpacken willst, das erscheint mir dann im DOIF immer irgendwie einfacher
([05:00] and !isday())(set Lampe on)
Siehe auch
Sollte genau das tun was Du oben in #6 beschrieben hast: Licht ab 5 aber nicht wenn schon Tag ist.

Aber wie gesagt, ich verstehe im noch das Thema und den ersten post nicht.  :-[

Ich glaube das ist es! ;D Werde das mal Irgendwie am Wochenende mit anderen Zeiten testen... Klingt aber sehr einfach und plausiebel... Das mit dem isday() hatte ich irgendwie nicht aufm Schrim. Wenn also kein Wert zwischen den Klammern ist bedeutet das das isday()=0 und es ist nacht, und wenn ich da eine 1 reinpacke dann isday(1)=Tag richtig?

Und meine Frage aus dem ersten Thread war ob man im Doif DEF die befehle so untereinander schreiben kann...

Vielen Dank euch allen für die Hilfe!