at oder (bool) notify

Begonnen von andipilz, 08 April 2014, 19:44:47

Vorheriges Thema - Nächstes Thema

andipilz

Hallo!

Ich denke ich bin mal wieder betriebsblind:

Für die Rollläden im Kinderzimmer möchte ich entweder bei Dämmerung via Twilight ss_indoor die Rollläden runterfahren oder aber spätestens um 18:30 Uhr, weil da Zeit zum Bettgehen ist. Gleiches Problem dann auch umgekehrt, dass die Rollläden nicht vor 7:00 hochfahren, aber nur, wenn es bereits hell genug ist mit sr_indoor.

Freue mich über sachdienliche Hinweise, wie ich das zuverlässig hinbekomme. Danke!

Gruß Andi

betateilchen

1. Schritt: zwei Funktionen in die 99_myUtils.pm packen:

sub abend {
   return (ss_indoor > "18:30") ? "18:30" : ss_indoor)
}

sub morgen {
   return (sr_indoor < "07:00") ? "07:00" : sr_indoor)
}



2. Schritt: zwei at Definitionen anlegen:

define rollo_zu at *{abend} set rolladen zu

define rollo_auf at *{morgen} set rolladen auf


Ich hoffe, das Prinzip ist verständlich.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DerRoteBlitz

Hallo,

ich wollte das mal ausprobieren da ich mit meiner "Sonnendefinition" noch nicht ganz so weiter komme. 

Der Fehler sieht dann so aus:
2015.02.20 09:18:31 1: configfile: the at function "abend" must return a timespec and not Undefined subroutine &main::abend called at (eval 9) line 1, <$fh> line 22.
.
the at function "morgen" must return a timespec and not Undefined subroutine &main::morgen called at (eval 10) line 1, <$fh> line 23.


Danke für die Hilfe

Brockmann

Wie wäre es denn so?


define DI_Rollos DOIF ([TwiLight:aktEvent] eq "ss_indoor" or [18:30])(set Rolladen zu)
DOELSEIF ([TwiLight:aktEvent] eq "sr_indoor" or [07:00])(set Rolladen auf)


Voraussetzung ist ein definiertes "Twilight"-Device (siehe Commandref).

flurin

#4
Zitat von: DerRoteBlitz am 20 Februar 2015, 09:24:40
Hallo,

ich wollte das mal ausprobieren da ich mit meiner "Sonnendefinition" noch nicht ganz so weiter komme. 

Der Fehler sieht dann so aus:
2015.02.20 09:18:31 1: configfile: the at function "abend" must return a timespec and not Undefined subroutine &main::abend called at (eval 9) line 1, <$fh> line 22.
.
the at function "morgen" must return a timespec and not Undefined subroutine &main::morgen called at (eval 10) line 1, <$fh> line 23.


Danke für die Hilfe

Versuch's mal so:

sub abend {
  return (ReadingsVal("My_Twilight","ss_indoor","") > "18:30") ? "18:30" : ReadingsVal("My_Twilight","ss_indoor",""))
}

sub morgen {
  return (ReadingsVal("My_Twilight","sr_indoor","" < "07:00") ? "07:00" : ReadingsVal("My_Twilight","sr_indoor",""))
}


Voraussetzung:

define My_Twilight Twilight <latitude> <longitude>

DerRoteBlitz

Prima, Danke flurin, Nachdem ich die fehlende Klammer gefunden hatte klappte es. Danke!

@Brockmann: Danke für den Tipp, werde ich auch noch testen!

Gruß

flurin

Zitat von: DerRoteBlitz am 24 Februar 2015, 19:14:50
Prima, Danke flurin, Nachdem ich die fehlende Klammer gefunden hatte klappte es. Danke!

Gruß

Ja, es fehlte eine Klammer am Schluss > korrigiert.

Gruss
flurin