Gelöst:Schalten zwischen 22:30 und 01:30

Begonnen von djhans, 11 Februar 2014, 09:12:57

Vorheriges Thema - Nächstes Thema

djhans

Hallo,
ich möchte bestimmte Aktionen nur in einem Zeitraum von 22:30 bis 01:30 zulassen.
Habe aber einen Knoten im Kopf und kriege es einfach nicht hin.

mit
if($hour>=21 && $hour<23)
kann ich den Zeitraum zwischen 21 und 23 Uhr festlegen, aber bei
if($hour>=21 && $hour<1)
funktioniert das logischerweise nicht mehr. Wie fängt man das ab?

Mit den Minuten wird das wohl analog zu den Stunden gehen oer?
djhans

hexenmeister

Zitatif($hour>=21 && $hour<1)
Größer 21 und (gleichzeitig) kleiner 1? Das geht schon mathematisch nicht  :o

Du muss anders vergleichen: Ist der Zeitraum zwischen 0 und 1 oder zwischen 21 und 0, dann mache etwas...
Oder einfacher: x>=21 ODER x<=1

Rince

Du könntest es aber auch ganz anders lösen.

Ich nehme an, dein Schaltbefehl wird über ein Notify ausgelöst?

Dann setz dieses doch mit at einfach um *22.30.00 auf disabled 0
Und ein anderes at um *01.30.00 setzt das Notify auf disabled 1

Ist zwar viel weniger Elegant, aber man spart sich den Knoten.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

betateilchen


if($hour ~~ [22,23,0,1]) {wir sind im richtigen zeitraum}


Ich würde aber auch die Lösung mit dem disable empfehlen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

djhans

Hi,
danke für die Anregungen:
also so:
define zeitraum_aktiv dummy
...
define Zeitraum_Ein at *22:00:00 set zeitraum_aktiv 1
define Zeitraum_Aus at *01:00:00 set zeitraum_aktiv 0
......
define Test notify Sonos_Buero:transportState:.PLAYING
{
if (ReadingsVal ("zeitraum_aktiv", "state",0))
  {fhem ("set Sonos_Buero Volume 5 1")}
}

...ist aber ziemlich kompliziert! Geht das auch einfachen?
djhans

Puschel74

#5
Hallo,

Zitat..ist aber ziemlich kompliziert! Geht das auch einfachen?
Sorry aber 3 Beiträge und in KEINEM wird eine Lösung mit einem Dummy angesprochen.
Du postet deine Lösung mit einem Dummy und fragst ob es noch einfacher geht?

Wenn Helfer etwas posten und damit versuchen dem Fragesteller zu helfen sollte der Fragesteller auch so fair sein und die geposteten Vorschläge zumindest mal ansehen und erklären warum die 3 geposteten Voschläge zu kompliziert sind.

Grüsse

Edith: korrigiert - du verwendest zum Glück nur einen Dummy  :o
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

djhans

Moin Puschel!
das heißt hier doch "Anfängerfragen", oder?

Ich habe das "Disable" so verstanden, als müsse man hier ein Device namens "disable" definieren. Scheint aber offenbar anders gemeint zu sein.....
Sorry für meinen unqualifizierten Beitrag im Anfängerforum!  :-(

Gruß,
djhans.

hexenmeister

#7
disable ist die Eigenschaft an Notify, die dieses außer Kraft setzt ;)
Du brauchst also, zusätzlich zum notify, ein AT mit disable und ein mit enable

in etwa so:
define mydisable at ... attr mynotify disable 1
define myenable at ... attr mynotify disable 0

Edit: typos

Puschel74

Hallo,

Zitatdas heißt hier doch "Anfängerfragen", oder?
Klar ist das der Anfängerbereich.
Aber auch Anfänger dürfen gerne mehr als nur 2 Zeilen schreiben.

ZitatSorry für meinen unqualifizierten Beitrag im Anfängerforum!  :-(
Das hat mit einem "unqualifizierten Beitrag" nichts zu tun.
Du hättest zumindest erwähnen können das du dich auf das erste Beispiel beziehst - Gedankenübertragung ist leider noch nicht als Modul implementiert  ;)

define Zeitraum_Ein at *22:00:00 attr <Notifyname> disable 0
define Zeitraum_Aus at *01:00:00 attr <Notifyname> disable 1


So sollte es klappen und so war es mit dem disable gemeint.

Grüsse

Edith: hexenmeister war schneller
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

djhans

Hallo Puschel,
...sorry, war nur ein wenig verwundert!

Ich habe das "disable" nun verstanden und auch selber hingekriegt. Habe wieder etwas gelernt. Danke an alle für den Code.

Allerdings:
Hier muss man bedenken, dass man beim Start von fhem, das notify auf disable 1 setzt, sonst ist es aktiv bis die "Auszeit" das erste mal ausgeführt wird, richtig?

Christian

betateilchen

wenn Du vor dem Neustart ein "save" machst, nicht. Dann wird das Attribut gespeichert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Rince

Was Betateilchen sagt,
zusätzlich kannst dir in der commandref mal cmdalias ansehen.
Damit kannst du das shutdown modifizieren, das vorher automatisch ein save ausgeführt wird.

Dann kannst es beruhigt vergessen :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Puschel74

Hallo,

und wenn die Frage geklärt bitte mit einem (Gelöst) versehen  ;D

1. Beitrag bearbeiten und in den Titel einfach ein (Gelöst) einfügen.
Danke.

Grüsse
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

djhans

Hm,
aber wenn fhem abstürzt (...und das macht es regelmäßig) und nur der Resetknopf hilft, wird es doch automatisch auf disable 0 gesetzt und somit ist das notify aktiv, oder verstehe ich das falsch?

macht man das dann mit global:INITIALIZED ?

Christian

Puschel74

Hallo,

Zitataber wenn fhem abstürzt (...und das macht es regelmäßig)
Dann sollte du dem mal auf den Grund gehen und abstellen.

Welche Hardware verwendest du den? - Signatur wäre echt hilfreich manchmal  ;D

Grüsse
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.