Licht einschalten wenn es Dunkel ist und der Fernseher läuft

Begonnen von spike08122, 02 Dezember 2015, 11:20:03

Vorheriges Thema - Nächstes Thema

Ellert

Zitat von: sasquuatch am 12 April 2016, 16:45:55
ich nochmal, also das DOIF klappt bei mir nicht wenn ich sunset drin habe. nehme ich die variable raus, schaltet DOIF die Lampe so wie es soll.
hat das Problem noch jemand?
define Licht_auto_TV DOIF ([Automatisch_Schalten] eq "on" and [Sat] eq "present" and [{sunset("CIVIL")}]) (set StehlampeKleinWohnen on) DOELSEIF ([Sat] eq "absent") (set StehlampeKleinWohnen off

[{sunset("CIVIL")}] ist nur zu einem Zeitpunkt wahr, es wird nur geschaltet wenn zu diesem Zeitpunkt auch die anderen beiden Vergleiche wahr sind.
Du könntest eine Zeitspanne angeben, statt [{sunset("CIVIL")}] nimm z.B. [{sunset("CIVIL")}-sunrise("CIVIL")].

sasquuatch

danke :)
habe es jetzt so, hoffe die klammern sind richtig, weil er es nur so angenommen hat.

define Licht_auto_TV DOIF ([Automatisch_Schalten] eq "on" and [AVReceiverYamaha] eq "on" and [{sunset("REAL")}-{sunrise("REAL")}]) (set StehlampeKleinWohnen on) DOELSEIF ([AVReceiverYamaha] eq "off" and [StehlampeKleinWohnen] eq "on") (set StehlampeKleinWohnen off)

Ellert

Zitathoffe die klammern sind richtig
Ja, da habe ich schlampig kopiert, zum Glück gibt es eine Syntaxprüfung ;)

sasquuatch

hat ja jetzt endlich dank deiner hilfe geklappt. habe gestern auch nochmal die commandref durch gelesen und diesen teil mit sunset-sunrise entdeckt, wäre aber trotzdem nicht ohne dich drauf gekommen.

jetzt verstehe ich endlich DOIF und kann so meine Sommerbeschattung programmieren. alles was ich bisher dazu gefunden habe, scheint mir zu kompliziert zu sein.

rot-weiss4

Zitat von: sasquuatch am 12 April 2016, 17:09:45
danke :)
habe es jetzt so, hoffe die klammern sind richtig, weil er es nur so angenommen hat.

define Licht_auto_TV DOIF ([Automatisch_Schalten] eq "on" and [AVReceiverYamaha] eq "on" and [{sunset("REAL")}-{sunrise("REAL")}]) (set StehlampeKleinWohnen on) DOELSEIF ([AVReceiverYamaha] eq "off" and [StehlampeKleinWohnen] eq "on") (set StehlampeKleinWohnen off)

Hallo,

Ich muss das Thema nochmal rauskramen...
Ich hab den oben zitierten Code ebenfalls benutzt um das Licht einzuschalten wenn ich fernsehe. Jetzt ist mir aufgefallen das wenn ich vorm Sunset fernsehe und die Zeit des Sonnenuntergang eintritt, die Lampe nachträglich nicht geschaltet wird. Logischerweise, weil der ja nur einmal prüft wenn der AVR eingeschaltet wird und danach nicht wieder, oder?

Hab jetzt 3 Wochen recherchiert und mir jetzt diesen Code ausm Hirn gedrückt.

define Licht_auto_TV2 watchdog (DENON:on and isday() ) set licht_wohnzimmer on

Dabei kriege ich diese Fehlermeldung:
Bad regexp 1: Unmatched ( in regex; marked by <-- HERE in m/^( <-- HERE DENON:on$/ at ./FHEM/91_watchdog.pm line 49.

Was bedeutet das und was mache ich falsch?

sasquuatch

Zitat von: rot-weiss4 am 10 März 2017, 15:36:52
Logischerweise, weil der ja nur einmal prüft wenn der AVR eingeschaltet wird und danach nicht wieder, oder?
ja und nein. natürlich prüft er ständig ob alle bedinungen erfüllt sind, schaltet es "dann" aber nur einmal ein bzw. aus, aber er prüft es von sonnenuntergang bis sonnenaufgang ununterbochen. wenn ich also nach sonnenuntergang einschalte, schaltet er es trotzdem ein bzw. aus und wenn ich zwischenzeitlich der meinung bin, ich möchte jetzt das licht doch ausschalten, bleibt es dann auch aus. oder ich habe meinen AV aus und schalte das licht wieder ein, wäre es auch schlecht, würde er jetzt weiter prüfen und mein licht ständig wieder ausschalten. bei mir funktioniert die schaltung wunderbar, vielleicht hast du einen fehler im Code vom DOIF, kannst ihn ja mal posten.

mit watchdog kenne ich mich nicht aus  :-\

rot-weiss4

Hi, danke für deine Hilfe.
Anbei der DOIF-Code:
defmod Licht_auto_TV DOIF ([DENON] eq "on" and [{sunset("REAL")}-{sunrise("REAL")}]) (set licht_wohnzimmer on) DOELSEIF ([DENON] eq "off") (set licht_wohnzimmer off)
attr Licht_auto_TV do always
attr Licht_auto_TV room Wohnzimmer


[/size]Das Licht geht bei dir aber auch nicht an wenn du z. B. um 14 Uhr fern siehst, irgendwann tritt die Zeit von sunset ein und das Licht geht nachträglich von alleine an, oder? Das müsste ja mit einem watchdog auf die Zeit des täglichen Sunset getriggert sein... Ich weiß nur nicht genau wie ich ihm das sagen soll.

KernSani

Du verwendest DOIF Syntax in einem Watchdog https://wiki.fhem.de/wiki/Watchdog

Edit: Da war jemand schneller ;-S
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

sasquuatch

ich sehe keinen fehler, überpfüe mal zwei sachen:
steht bei "Probably associated with " ganz unten sowohl der denon als auch das licht_wohnzimmer?

wenn du in der kommandozeile set licht_wohnzimmer on eingibst, denke ich wird dein licht angehen, aber wenn dein denon eingeschaltet ist, steht bei state auch "on"?

ansonsten ist mein latein am ende, eventuell baust du ein log1 ein, damit kenne ich mich aber auch noch nicht aus  :-\