FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Badflex am 24 Februar 2018, 16:07:29

Titel: isday geht nicht mehr.
Beitrag von: Badflex am 24 Februar 2018, 16:07:29
Hallo,
hat sich an isday was verändert?

2 Jahre hat das gut geklappt:

define TuerAufRolloHoch notify Terrassentuer:open {if(!isday()) {fhem("set Rollo_Flur off") }}
define TuerZuRolloRunter notify Terrassentuer:closed {if (!isday()) {fhem("set Rollo_Flur on") }}
define TuerGekipptRollo20 notify Terrassentuer:tilted  {if(!isday()){fhem("set Rollo_Flur 80") }}

Seit einem update erkennt er nicht mehr das es noch Tag ist.
Das rollo fährt immer hoch wenn man die Tür auf macht und immer runter wenn man sie schließt.
????????????
Titel: Antw:isday geht nicht mehr.
Beitrag von: betateilchen am 24 Februar 2018, 16:15:29
gib doch mal {isday} in die FHEM Befehlszeile ein, da sollte jetzt (jetzt bezieht sich auf die aktuelle Uhrzeit 16:15) eine 1 als Ergebnis kommen.
Titel: Antw:isday geht nicht mehr.
Beitrag von: Badflex am 24 Februar 2018, 16:36:52
Ja, da kommt eine 1

Sollte da nicht bei {!isday} auch eine 0 Kommen?
Da kommt nix
Titel: Antw:isday geht nicht mehr.
Beitrag von: kumue am 24 Februar 2018, 19:50:04
Zitat von: Badflex am 24 Februar 2018, 16:36:52
Sollte da nicht bei {!isday} auch eine 0 Kommen?

Selbstverständlich

loki> {isday}
0
loki> {!isday}
1
loki> exit
Bye...
Connection closed by foreign host.
pi@loki:~ $ date
Sa 24. Feb 19:47:57 CET 2018

Titel: Antw:isday geht nicht mehr.
Beitrag von: Badflex am 25 Februar 2018, 08:54:15
{!isday} da kommt komischerweise nix sobald es hell ist.
Wenn es dunkel ist kommt die 0 :-\
Titel: Antw:isday geht nicht mehr.
Beitrag von: betateilchen am 25 Februar 2018, 09:06:19
Die Funktion arbeitet wie sie soll. Die letzte Änderung an der Funktion isday() war im November 2015.

Es könnte aber sein, dass sich das Verhalten von perl geändert hat, wenn es um das negieren von Funktionsergebnissen geht.
Bei mir kommt nämlich die 0 auch nicht mehr, aber ich hatte deshalb noch kein Problem.



fhem-rpi3> {isday}
1
fhem-rpi3> {!isday}

fhem-rpi3>


Probiere mal folgendes:



define TuerAufRolloHoch notify Terrassentuer:open {fhem("set Rollo_Flur off") unless (isday() eq "1")}



Das grundsätzliche Thema (perl Verhalten) werde ich mal im Developerbereich zur Diskussion stellen.
Titel: Antw:isday geht nicht mehr.
Beitrag von: betateilchen am 25 Februar 2018, 09:09:24
@kumue: kannst Du das bei Dir mal tagsüber testen, um zu sehen, ob die Negierung auch von 1 auf 0 funktioniert?

Titel: Antw:isday geht nicht mehr.
Beitrag von: kumue am 25 Februar 2018, 09:20:20
die Null wird nicht ausgegeben... :o


loki> {isday}
1
loki> {!isday}

loki> exit
Bye...
Connection closed by foreign host.
pi@loki:~ $ date
So 25. Feb 09:17:47 CET 2018
pi@loki:~ $ perl -v
This is perl 5, version 20, subversion 2 (v5.20.2) built for arm-linux-gnueabihf-thread-multi-64int
Titel: Antw:isday geht nicht mehr.
Beitrag von: Happy Fhem User am 25 Februar 2018, 13:13:45
Wenn ihr eine bool'sche Bedingung prüfen wollt, müsst ihr aber


{isday()?1:0}


benutzen, bzw. angelehnt an obiges

{!isday()?'machen':'nicht machen'}


@Badflex: Btw. funktioniert vielleicht folgendes?

define TuerAufRolloHoch notify Terrassentuer:open { fhem("set Rollo_Flur off") if !isday() }

Titel: Antw:isday geht nicht mehr.
Beitrag von: Badflex am 25 Februar 2018, 13:48:05
Ich glaub ich bin auf dem falschen Dampfer.
Ich glaube ich habe aus versehen den Türkontakt mit dem Rolloschalter beides Homematic gepairt nach Batteriewechsel.
Kann das sein das dann das Rollo automatisch hoch und runter geht?
Habe die define's mal komplett rausgenommen und das Rollo fährt immer noch runter wenn ich die Tür schließe. Lol

Sehe aber auf anhieb nur das airing mit dem Cul!?
Mhhh

Titel: Antw:isday geht nicht mehr.
Beitrag von: Otto123 am 25 Februar 2018, 13:56:52
Das peering wird im Gerät eingetragen, wenn Du das wirklich gemacht hast kannst DU alles aus machen, die Geräte reden trotzdem miteinander solange sie selbst Strom haben.

Das mit dem isday bei mir auch so, habe ich gestern schon beobachtet. Tagsüber liefert die Negation nix zurück. Nachts dann eine 1 - das hat mich leicht verwundert.

Aber das ist wohl so bei boolschen Variablen - wie Happy Fhem User zeigt.

Gruß Otto