Hallo,
Es gibt ja verschiedene Möglichkeiten, den Zeitpunkt von Sunrise/Sunset zu definieren (http://fhem.de/faq.html#faq20).
Wie kann ich denn diesen Wert in der fhem.cfg setzen? Ist das überhaupt möglich? Das wäre doch super. Dann muss man nicht immer die 99_SUNRISE_EL.pm ändern. Oder gibt es einen anderen Weg?
Für die Standortkoordinaten ist das ja problemlos möglich:
attr global latitude 52.769
attr global longitude 8.985
Damit werden dann ja die Default-Werte in 99_SUNRISE_EL.pm überschrieben:
############################
# If set in global, use longitude/latitude
# from global, otherwise set Frankfurt/Germany as
# default
$long = AttrVal("global", "longitude", "8.686");
$lat = AttrVal("global", "latitude", "50.112");
Ich bin leider nicht so fit im Coding und Nutzung der Source-Verwaltung. Hat jemand die Möglichkeit, das zu erweitern?
Danke
Ich verstehe die Frage nicht.
Oder sagen wir mal anders: Hast du den Sunrise Eintrag in der Commandref gesehen?
http://fhem.de/commandref.html#SUNRISE_EL
Wenn nicht lese den mal und wenn dann noch Fragen sind her damit.
Ich habe bisher in der fhem.cfg bspw. Folgendes verwendet:
define FlurlichtAn at *{sunset(0,"16:00","22:00")} {...
und in der 99_SUNRISE_EL.pm habe ich manuell immer
$altit=-0.833;
gesetzt.
D.h., ich hätte altit gar nicht ändern müssen, sondern nur die -0.833 in den sunset-Befehl mit aufnehmen müssen? Also so:
define FlurlichtAn at *{sunset(-0.833,"16:00","22:00")} {...
Oder wie?
Danke für Hilfe.
Moin,
Sunset kann noch viel mehr.
sunset(REAL,.....)
sunset(HORIZON,....
etc.
Du kannst sunset (und auch sunrise) ganz deinen Wünschen anpassen.
siehe comamndref.
Grüße
Wäre denn mein Ansatz zunächst richtig, wenn ich Folgendes schreibe:
define FlurlichtAn at *{sunset(-0.833,"16:00","22:00")} {...
Oder wäre die Syntax falsch, oder gibt's damit andere Probleme?
Danje
Hallo,
Zitatdefine FlurlichtAn at *{sunset(-0.833,"16:00","22:00")} {...
sollte falsch sein da sunset/sunrise hier eine Zeitangabe in Sekunden erwartet.
Also evtl. so
define FlurlichtAn at *{sunset(-1800,"16:00","22:00")} {...
schaltet 1800 Sekunden vor Sonnenuntergang.
Aber
define FlurlichtAn at *{sunset(REAL,"16:00","22:00")} {...
sollte wieder klappen.
Grüße
Zitat von: Puschel74 am 03 November 2013, 08:29:32
Aber
define FlurlichtAn at *{sunset(REAL,"16:00","22:00")} {...
sollte wieder klappen.
Wenn ich die Syntax richtig verstanden habe, dann sollte in dem obigen Beispiel nach dem "REAL" noch der Offset-Wert kommen, es sollte also so aussehen:
define FlurlichtAn at *{sunset(REAL,0,"16:00","22:00")} {...
(siehe auch das Beispiel in der commandref: http://fhem.de/commandref.html#SUNRISE_EL)
Gruß, Peter
Hallo,
ZitatWenn ich die Syntax richtig verstanden habe, dann sollte in dem obigen Beispiel nach dem "REAL" noch der Offset-Wert kommen,
Jep. Oder so ;D
Da ich nur den Offset verwende ohne REAL etc. habe ich mal nicht in der commandref geschaut 8)
Grüße
define FlurlichtAn at *{sunset("HORIZON=-8.33",0,"16:00","22:00")} {...
Zitat von: Dietmar63 am 03 November 2013, 11:35:14
define FlurlichtAn at *{sunset("HORIZON=-8.33",0,"16:00","22:00")} {...
-8.33 oder -0.833 ?
Na, ich probier's mal aus.
Wenn du -8.33 angibst, wird die Zeit berechnet, wann die Sonne -8.33 grad unter dem Horizont ist
Gesendet von meinem HTC Desire S mit Tapatalk
ich find das schon extrem was alles damit zu machen ist, dem Spieltrieb sind da keine Grenzen gesetzt diese ganzen Angaben "REAL", "CIVIL", "NAUTIC", "ASTRONOMIC", "HORIZON"
Da stellt sich die Frage was macht hier am meisten Sinn, schreibt doch mal wie ihr das so macht,
Also bei mir ist das in den Rollläden drin und in der Beleuchtung
Rollläden ist fast am Anschlag, damit meine ich heute gehen sie um 17:11 Uhr runter, die nächsten Tage wird das ja weniger und dann greift die 17Uhr Zeit, aber ich weiß auch nicht was in unseren Breitengraden sinnvoll ist.
Hallo,
Zitataber ich weiß auch nicht was in unseren Breitengraden sinnvoll ist.
Das kann ich (und auch alle anderen hier) dir sagen
was Du für sinnvoll haltest bzw. was den WAF Richtung 100% laufen lässt ;D
Es muss ja dir und deiner Familie passen.
Wobei sich da die Familie lieber (an-)passt 8)
Aber wie du schon geschrieben hast
Zitatdem Spieltrieb sind da keine Grenzen gesetzt
So ist es. Man kann alle Uhrzeiten ausprobieren.
Dank sunrise/sunset recht simpel indem man nur einen Parameter, eben den Offset, neben der "Sonnenstand-Angabe" verändern muss um täglich angepasste Zeiten zu bekommen.
Aber das ausprobieren muss jeder selbst übernehmen.
Grüße
P.S.: Rollläden laufen mit sunset/sunrise. Beleuchtung mit Twilight.
ich persönlich befasse mich nicht mit REAL, CIVIL und so weiter. Ich nehme nur einen offset wie -1800 oder auch + 3600 um die richtige Uhrzeit zu finden. Richtige Uhrzeit ist natürlich die, die meine Frau gut findet.
Wenn du meinst sunset hätte viele Optionen, dann sieh dir mal Twilight an. Das ist von Leuten geschrieben, die meinten, man müsse noch den Wetterbericht (Nebel, Regen, Bewölkung hat auch Einfluss auf die Lichtverhältnisse), die Höhe über dem Meeresspiegel, die Stärke der Mondprotuberanzen und den negativen Senkelhub der Beschattgrenzenaufquellung mit berücksichtigen. DA kannst du Sachen einstellen.
Da kommt mir gerade eine Theorie in den Sinn: Vielleicht kann man den Zustand einer Ehe daran messen, wieviel Aufwand jemand treiben muss, um das Licht abends WAF-konform bei Dämmerung einzuschalten. LOL
Hallo,
OT
ZitatMondprotuberanzen
Ich dachte sowas gibt es nur bei Sternen ;D
ZitatDa kommt mir gerade eine Theorie in den Sinn:
Man(n) könnte auch sagen das sowas nicht den Zustand der Ehe widerspiegelt sondern die Liebe zu seiner Frau 8)
Aber stimmt schon - bei twilight kannst du so gut wie alles abfragen.
Grüße
Hey Leute,
ich denke, ich bin ein halbwegs gebildeter Mitteleuropäer, aber bei
Zitat... Stärke der Mondprotuberanzen und den negativen Senkelhub der Beschattgrenzenaufquellung mit berücksichtigen.
muss selbst ich die Segel streichen.
Ich bleibe bei sunrise und sunset mit einem gewissen Offset, basta. Der Uniroll funktioniert sowieso nur manchmal, was bei manchen Leuten echt erheiternd wirkt. Aber der WAF ist hier 100 %, weil sie nicht mehr über's Sofa lehnen muss ;D
Gruß und schönen Abend.
PeMue
Hallo,
OT
Zitatweil sie nicht mehr über's Sofa lehnen muss
Was dich aber nicht sehr erfreut nehme ich mal an 8)
Was wir auf uns nehmen um den WAF nach oben zu bringen (als Rechtfertigung für Spielereien die uns Spaß machen) ;D
BTT
Grüße
P.S.: Kann die letzten Beiträge ein Admin nach Off-Topic verschieben bitte ;D
@puschel könntest du mal deinen Twilight Code für die Beleuchtung posten, ich finde nur immer welche mit anderen Abhängigkeiten die ich nicht wirklich brauche. Auch der im Wiki hat andere Dinge mit drin.
Würde gern einfach mal schauen ob das mit der Beleuchtung, besser ist da ich einen etwas vergewaltigten Sunset/Sunrise drin habe der so aussieht
define AussenLampeEin at *{sunset("HORIZON=-14",0,"18:00","22:00")} set AussenLampe on
define AussenLampeAus at *{sunset("HORIZON=-36",0,"22:45","23:20")} set AussenLampe off
Hallo,
Zitat@puschel könntest du mal deinen Twilight Code für die Beleuchtung posten,
Klar kann ich das:
define zuhause_on notify EG_Eingang_Bewegungsmelder:on.* {
my $light = ReadingsVal("myTwilight", "light", 99);
my $fhttk_eing_tuer = ReadingsVal("EG_Eingangstuer", "Window", "nA");
if ( $fhttk_eing_tuer eq "Closed" ) {
if ($light < 6) {
fhem ("set EG_Eingang_Licht_innen on-for-timer 30; set EG_Vorraum_Licht on-for-timer 48");
}
}
fhem ("define EG_Eingang_Bewegungsmelder_Aus at +00:00:10 set EG_Eingang_Bewegungsmelder off") if (Value("EG_Eingang_Bewegungsmelder_Aus") eq "");
}
Eigentlich ist das eine Kopie aus dem DEF des notify.
Das define habe ich nur hinzu gefügt damit es etwas übersichtlicher wird.
Grüße
vielen Dank das werde ich mal bei mir zuhause einbauen und schauen wie die Zeiten für meine Beleuchtung dann aussehen.
den Teil brauche ich doch nicht, denn dieses habe ich ja nicht, oder?
my $fhttk_eing_tuer = ReadingsVal("EG_Eingangstuer", "Window", "nA");
if ( $fhttk_eing_tuer eq "Closed" ) {
Hallo,
Zitatmy $fhttk_eing_tuer = ReadingsVal("EG_Eingangstuer", "Window", "nA");
if ( $fhttk_eing_tuer eq "Closed" ) {
Nein - das ist nur unsere Haustür.
Ich frage damit nur ab ob die Tür geschlossen ist.
Twilight kannst du aber auch recht gut in einen Plot einbauen um zu sehen wann welche Helligkeitsstufe erreicht wird.
Mal schauen ob ich das noch finde dann poste ich das mal.
So hab ich für mich kontrolliert ob alles <6 für mich ok ist und danach erst den Code gebaut.
Grüße
Zitat von: Dietmar63 am 03 November 2013, 11:35:14
define FlurlichtAn at *{sunset("HORIZON=-8.33",0,"16:00","22:00")} {...
Ich hab's jetzt einmal probiert.
define FlurlichtAn at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} {...Liefert bei der originalen 99_SUNRISE_EL.pm genau die gleichen Schaltzueiten in der WebGUI wie meine erste Version mit der geänderten 99_SUNRISE_EL.pm.
Danke für eure Hilfe.
ZitatStärke der Mondprotuberanzen und den negativen Senkelhub der Beschattgrenzenaufquellung mit berücksichtigen.
Gibts beides selbstredend nicht, ich wollte damit nur zum Ausdruck bringen, das ich Twilight für überkandidelt halte.
ZitatIch bleibe bei sunrise und sunset mit einem gewissen Offset, basta.
Eben. Ich auch.
Zitat von: Zrrronggg! am 03 November 2013, 20:26:02
Gibts beides selbstredend nicht, ich wollte damit nur zum Ausdruck bringen, das ich Twilight für überkandidelt halte.
Eben. Ich auch.
ich habe ja das Problem mit dem Ausschalten bei sunrise da komme ich ja nicht zurück bis vor 0Uhr.
sunset schaltet ein alles OK aber sunrise auch zurück gerechnet ich sage mal {sunrise(-25200)} geht eben nur bis 0Uhr ich möchte aber 23:20 ausschalten
Äh... warum will man sunset verwenden und dann so weit zurück gehen?
Nur mal interessehalber gefragt.
weil ich nicht weiß welchen Wert ich dann nehmen soll damit sich das nach sunrise/sunset ändert, klar könnte ich es als festen Wert eingeben.
Ich würde es am liebsten so machen das er automatisch noch am selben Tag wieder ausschaltet aber eben spätestens so 23:45Uhraber eben vorher sich nach ss richtet. Evtl. stehe ich ja auch dem Schlauch..
Ich verstehe deine Antwort nicht.
Versuch doch mal zu sagen was genau du machen willst.
Die Lampe soll unter der und der Bedingung angehen und dann und dann wieder aus....
Die Bedingung Lampe EIN funktioniert ja mit
define AussenLampeEin at *{sunset("HORIZON=-14",0,"18:00","22:00")} set AussenLampe on
Die Bedingung AUS soll dann eben auch automatisch so weit gegen Mitternacht gehen und ausschalten bis meine Zeit wann sie spätestens ausgehen soll erreicht ist diese Zeit soll dann irgend eine Zeit zwischen22:55 bis 23:20 sein.
Ich habe das momentan so, ist sicher nicht ideal, oder?
define AussenLampeAus at *{sunset("HORIZON=-36",0,"22:55","23:20")} set AussenLampe off
Hoffe das es halbwegs erklärt ist
Ganz verstehe ich das immer noch nicht:
ZitatDie Bedingung AUS soll dann eben auch automatisch so weit gegen Mitternacht gehen und ausschalten bis meine Zeit wann sie spätestens ausgehen soll erreicht ist diese Zeit soll dann irgend eine Zeit zwischen22:55 bis 23:20 sein.
Äh... WANN soll die Lampe ausgehen? Unter "so weit gegen Mitternacht gehen und ausschalten bis meine Zeit wann sie spätestens ausgehen soll erreicht ist diese Zeit soll dann irgend eine Zeit zwischen22:55 bis 23:20" kann ich mir nix vorstellen.
Ich biete dir mal ein paar Optionen an:
- 3 Stunden nach dem angehen
- um 22:50
- um 22:50 aber nicht am Wochenden, da erst um 23:50
- 3 Stunden bevor es hell wird
- wenn es hell wird
- 2 Stunden nach dem es hell wird
OK, also die Variante 1 wäre gut 3 Std. später - kann ich ja jederzeit erhöhen und die Variante 3. ist fast noch besser die Zeit kann ich ja dann auch anpassen.
Zitat
1. Variante - 3 Stunden nach dem angehen
3. Variante - um 22:50 aber nicht am Wochenden, da erst um 23:50
was ich damit sagen will - ich möchte keine feste Zeit haben die sollte sich ändern und das mit dem WoE finde ich auch gut
define FlurlichtAn at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set lamp1 on ;; define Lampe_später_aus at +03:00:00 set lamp1 off
Die Lampe wird angemacht wann immer es lauf Sunset und deinen Sunset-Parametern Zeit ist, 3 Stunden später geht sie aus.
Für "WE länger" gibt's mehrere Möglichkeiten ich denke noch bisschen nach, welche ich die beste finde.
Wenn ich ein bisschen Kritik über darf: Ich hab's ja jetzt , aber du bist schwer zu verstehen.
Du formulierts irgendwie ungenau und unvollständig, sodass zumindest ich nicht direkt kapiere, was du genau willst.
Ich habs zwar jetzt verstanden aber in deinem letzten Post steht z.b.
Zitatich möchte keine feste Zeit haben die sollte sich ändern
DU weisst was du damit meinst (und ich jetzt auch) aber jeder andere kann mit so einem Satz weniger anfangen.
Was soll denn "Zeit soll sich verändern" heissen? Ich könnte dir ja z.b. einen Code basteln wo die Lampe jeden Tag zu einer anderen Uhrzeit ausgeht, mal 2 Minuten nach dem sie angemacht wurde, mal 11 Stunden und am nächsten Tag nach 4 Stunden und 12 Minuten. Da würde die Zeit sich ja auch verändern, aber das ist ja trotzdem nicht was du willst.
Schreib doch anstelle dessen:
"Die Lampe soll nicht um einen bestimmte Uhrzeit ausgehen, sondern xy Stunden nach dem sie angegangen ist."
Ganz generell kommt man mit FHEM weiter, wenn man eindeutig beschreiben kann, was man will. D.H. Fhem kann nur so Kram wie
"immer wenn x, soll y passieren"
Und das muss man vorher auch in normaler Sprache formulieren können, sonst hat man's schwer.
[/size]
OK ich danke dir und erst Recht für das Verständnis mir zu zuhören :D :D..
Klar Kritik ist immer gut... kein Problem, man stellt sich manchmal doof an etwas richtig zu beschreiben...!
Also auf den Einfall zu kommen und das so zu machen wie du es mir hier anbietest dauert eben, bin doch noch ganz am Anfang ;)
{sunset("HORIZON=-0.833",0,"16:00","23:20")}
Damit ist es mir auch klar, die Zeit verschiebt sich automatisch mit dem sunset Wert.
Ich wollte damit erreichen das die Beleuchtung Außen jeden Tag zu einer anderen Zeit ausgeht(was ja jetzt mit den 3Std getan ist)
OK Danke nochmals
Wenn du ausserdem noch willst, dass die Lampe spätestens um 23:50 ausgeht, dann kannst du einfach noch eine weitere Zeile hinzufügen:
define Lamp_23_aus at *23:50:00 set lamp1 off
dann geht sie 3 Stunden nach einschalten aus, jedoch spätestens um 23:50 Uhr
Der Name des defines (hier "Lamp_23_aus") ist egal und dient nur der bessern Lesbarkeit.
define FlunzDdOOsen66 at *23:50:00 set lamp1 off
würde genauso funktionieren.
Ich habe jetzt ja die ursprüngliche 99_SUNRISE_EL.pm im Einsatz uns schalte per
define LichtAn at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} {
Allerdings scheint jetzt die isday() Funktion auch später zu greifen. Kann das sein? Ich nutze isday() wie folgt:
define PIR_West_aus notify Bewegungsmelder_West:on {\
if (Value("PIR_Automatik") eq "on" && !isday()) {\
fhem "set Licht on-for-timer 192";;
...\
Als ich noch die 99_SUNRISE_EL.pm auf meine sunset-Parameter angepasst hatte, schien isday() eher zu schalten.
Kann ich das auch beeinflussen?
Danke
Hallo,
Zitatschien isday() eher zu schalten
Dafür lass ich solche Daten (Uhrzeiten) in die Datenbank loggen und bastel mir dann einen Plot dazu.
Nach ein paar Tagen Laufzeit kann man schön sehen wann die Funktionen auslösen.
Grüße
Schön wäre ja aber zu wissen, wie man das beeinflussen kann.
ZitatAls ich noch die 99_SUNRISE_EL.pm auf meine sunset-Parameter angepasst hatte, schien isday() eher zu schalten.
Kann ich das auch beeinflussen?
Isday unterscheided Tag und Nacht so wie sunset und sunrise OHNE jeden Parameter schalten würde. Ich vermute, dass du durch deine Veränderungen im 99_SUNRISE_EL.pm isday beeinflusst hast.
Welche Paramter auch bei isday anwendbar sind weiss ich nicht, geht auch aus der Commandref nicht hervor. Ich nehme mal an das CIVIL, REAL etc auch gehen.
Wenn nicht:
entweder
- doch in 99_SUNRISE_EL.pm rumfummeln oder
- eigene Iday basteln:
Dazu einen Dummy erzeugen, der z.d. TAG heisst.
Zitatdefine dummy TAG
diesen dann mit sunrise und sunset befüllen wie du willst
Zitatdefine IST_NACHT at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set TAG Nacht
define IST_TAG at *{sunrise()} set TAG Tag
Und dann später auf den Wert von TAG testen:
Zitatdefine PIR_West_aus notify Bewegungsmelder_West:on {\
if (Value("PIR_Automatik") eq "on" && (Value("TAG") eq "Nacht" {\
fhem "set Licht on-for-timer 192";;
...\
ich muss hier jetzt nochmal fragen da die Zeit bei mir nicht greift
ich habe die Einschaltzeit jetzt so
define AussenLampeEin at *{sunset("HORIZON=-12",0,"17:30","22:30")} set AussenLampe on
das ergibt für morgen 17:59 Uhr
Auschaltzeit habe ich so:
define AussenLampeAus at *{sunset("HORIZON=-0.833",0,"22:45","23:45")} set AussenLampe off ;; define AussenLampeAus at +05:00:00 set AussenLampe off
es bleibt also immer 22:45 Uhr, wann greift dann die 5 Std. sollte doch eigentlich 5 Std. später also 23 Uhr werden
Zitates bleibt also immer 22:45 Uhr, wann greift dann die 5 Std. sollte doch eigentlich 5 Std. später also 23 Uhr werden
In dem Konstrukt GAR NICHT.
1.
Zitatdefine AussenLampeAus at *{sunset("HORIZON=-0.833",0,"22:45","23:45")} set AussenLampe off
macht die Lampe um 22:45 aus. IMMER. Und zwar weil
Zitatsunset("HORIZON=-0.833"
immer oder je nach Breitengrad fast immer vor 22:45 ist. Dass dann der Nachsatz
Zitatdefine AussenLampeAus at +05:00:00 set AussenLampe off
die Lampe 5 Stunden später NOCH MAL aus macht... sieht man nicht, die Lampe ist ja schon aus.
Mit anderen Worten: Du machst mit deinem Konstrukt die Lampe 5 Stunden aus nachdem sie ausgeschaltet wurde... klingt nicht wie das was man will? Eben.
Und ausserdem formulierst du dein sunset so, dass es identisch ist mit "at 22:45:00".
2. Ferner wird
Zitatdefine AussenLampeAus at +05:00:00 set AussenLampe off
gar nicht erzeugt, denn der Name diesen Defines ist ja der SELBE wie
Zitatdefine AussenLampeAus at *{sunset("HORIZO..
. Das geht aber nicht, eine define kann es nur einmal geben. Daher wird FHEM das zweite nicht anlegen und im Log die Fehlermeldung rausgeben: "Please delete AussenLampeAus first"
Beachte, dass mein ursprünglicher Vorschlag
define FlurlichtAn at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set lamp1 on ;; define Lampe_spaeter_aus at +03:00:00 set lamp1 off
folgende Unterschiede aufweist:
1. Die Lampe geht 5 Stunden aus nachdem sie EINGESCHALTET wurde.
2. die beiden defines haben unterschiedliche Namen.
3. das zweite define heisst nicht "Lampe_aus" sondern "Lampe_spaeter_aus". Obgleich der Name des Defines an sich für die Funktion egal ist und auch "uezelgoe4354_tt" heissen könnte, so sind kleine Tricks wie das einfuegen von "_spaeter_" in den Namen eine zusätzliche Sicherheit, dass man nicht aus Versehen 2 Sachen gleich nennt.
@Zrrronggg! - super erklärt. Danke dafür.
Aber:
Zitat von: Zrrronggg! am 08 November 2013, 00:44:27
define FlurlichtAn at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set lamp1 on ;; define Lampe_spaeter_aus at +03:00:00 set lamp1 off
folgende Unterschiede aufweist:
1. Die Lampe geht 5 Stunden aus nachdem sie EINGESCHALTET wurde.
das müssten
3 Stunden sein (sonst hab ich das Beispiel doch noch nicht verstanden), richtig?
Gruß, Peter
Zitatdas müssten 3 Stunden sein
Korrekt, men Fehler, sorry.
also ich dachte auch das ich es verstanden habe, aber dem ist wohl nicht so... :'(
ich habe das jetzt im Einsatz:
define AussenLampeEin at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set AussenLampe on ;; define Lampe_spaeter_aus at +05:00:00 set AussenLampe off
attr AussenLampeAus alias Beleuchtung 3x LED Aus
attr Lampe_spaeter_aus alias Beleuchtung 3x LED Aus
attr AussenLampeAus group Zeiten
attr Lampe_spaeter_aus group Zeiten
attr AussenLampeAus room 2_Licht Eingang
attr Lampe_spaeter_aus 2_Licht Eingang
das einschalten sehe ich in der fhem Weboberfläche aber ich bekomme den Ausschaltzeitpunkt nicht zu sehen, der ja entweder 3, 4 oder auch 5 Std. später sein sollte.
Und ich bekomme folgende Meldungen:
Please define AussenLampeAus first
Please define Lampe_spaeter_aus first
Please define AussenLampeAus first
Please define Lampe_spaeter_aus first
Please define AussenLampeAus first
Please define Lampe_spaeter_aus first
Ich habe das jetzt erst einmal so gelöst:
So für das Einschalten: ergibt für heute eine Zeit von 17:58:12 Uhr
define AussenLampeEin at *{sunset("HORIZON=-12",0,"17:30","22:30")} set AussenLampe on
attr AussenLampeEin alias Beleuchtung 3x LED An
attr AussenLampeEin group Zeiten
attr AussenLampeEin room 2_Licht Eingang
und so für das Ausschalten: ergibt heute eine Zeit von 23:17:13 Uhr
define AussenLampeAus at *{sunset(21600,"22:55","23:45")} set AussenLampe off
attr AussenLampeAus alias Beleuchtung 3x LED Aus
attr AussenLampeAus group Zeiten
attr AussenLampeAus room 2_Licht Eingang
Das gehörte noch zu einer anderen Frage aber weil ich editiert habe, paßt da nicht mehr:
Zitatwenn das gehen würde, wäre es schön wenn ich dann auch ein nicht vor 22:30Uhr und nicht nach 23:55Uhr mit rein bringen kann, dann wäre die Zeit variabel und würde sich zwischen 22:30 und 23:55 Uhr ändern
Zitatattr AussenLampeAus alias Beleuchtung 3x LED Aus
attr Lampe_spaeter_aus alias Beleuchtung 3x LED Aus
attr AussenLampeAus group Zeiten
attr Lampe_spaeter_aus group Zeiten
attr AussenLampeAus room 2_Licht Eingang
attr Lampe_spaeter_aus 2_Licht Eingang
das geht nicht. Du kannst Geräten Attribute geben aber nicht "defines" die Aktionen sind.
Lampe_spaeter_aus
ist ja kein Geräte, sondern vielmehr eine definiert Aktion, die unter bestimmten Bedingungen das Gerät
AussenLampe ausschaltet.
also: Wenn du das definierte "anfassen" kannst, dann kannst du ihm attribute geben.
Ausserdem gibst du noch mit
Zitatattr AussenLampeAus group Zeiten
etwas ein Attribut, was es nicht mal gibt, weder als Gerät noch als Aktion....
Nirgendwoe definiert, oder?
define AussenLampeAus at *{sunset(21600,"22:55","23:45")} set AussenLampe off
Okay langsam hab ich dich verloren. Ich hab dir einen Code vorgeschlagen, der geht. Ich verstehe langsam nicht mehr, was dein Problem ist. Die Lampe geht auch dann aus, wenn du an der Weboberfläche die Stelle wo man sehen könnte wann die ausgeht nicht gleich findest ;-)
Hallo,
ZitatDu kannst Geräten Attribute geben aber nicht "defines" die Aktionen sind.
ZitatWenn du das definierte "anfassen" kannst, dann kannst du ihm attribute geben.
Fast.
Ich kann einem notify oder einem at als Attribut durchaus einen Raum zuordnen in dem dieses notify/at dann auch dargestellt wird.
Bedingt aber das dieses notify/at zum Zeitpunkt der Attribut-Zuweisung natürlich bereits existieren muss.
Notfalls muss ich diese Zurodnung dann eben auch in den Code mit einbauen sonst hagelt es die geposteten Fehlermeldungen.
Ich kann jetzt allerdings nur für das Attribut room sprechen da ich dieses so auch verwende und meine notifys/at in die jeweiligen Räume verteile.
Ob und welche anderen Attribute noch gehen kann ich (noch) nicht sagen.
Grüße
Wo du recht hast....
Jetzt bin ich verwirrt... dachte das die Attribute richtig, dann doch nicht... jetzt doch wieder... Egal die lasse ich erst mal weg kann ich danach immer noch probieren.
Hallo,
um die Verwirrung hoffentlich etwas zu lösen.
Code von moonsorrox
define AussenLampeEin at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set AussenLampe on ;; define Lampe_spaeter_aus at +05:00:00 set AussenLampe off
attr AussenLampeAus alias Beleuchtung 3x LED Aus
attr Lampe_spaeter_aus alias Beleuchtung 3x LED Aus
attr AussenLampeAus group Zeiten
attr Lampe_spaeter_aus group Zeiten
attr AussenLampeAus room 2_Licht Eingang
attr Lampe_spaeter_aus 2_Licht Eingang
kann nicht funktionieren da
a) nirgendwo eine
ZitatAussenLampeAus
definiert wurde (in der gesamten Zeile kommt AusenLampeAus nicht ein einziges mal vor und
b)
ZitatLampe_spaeter_aus
erst erstellt wird wenn AussenLampeEin abgearbeitet wird.
Da also beide Definitionen (noch) nicht in FHEM existieren kommt es zu deiner Fehlermeldung.
Beispiel von mir wie es klappt:
*02:00:00 {
if ($we) {
fhem("define OG_Zimmer_Rollo_hoch at {sunrise(1800,'08:00','09:00')} set OG_Zimmer_Rollo off");
fhem("attr OG_Zimmer_Rollo_hoch room 32_Rollo");
fhem("define OG_Zimmer_Rollo_runter at {sunset(-1800,'16:00','20:15')} set OG_Zimmer_Rollo on");
fhem("attr OG_Zimmer_Rollo_runter room 32_Rollo");
}
if (!$we) {
fhem("define OG_Zimmer_Rollo_hoch at {sunrise(1800,'07:00','09:00')} set OG_Zimmer_Rollo off");
fhem("attr OG_Zimmer_Rollo_hoch room 32_Rollo");
fhem("define OG_Zimmer_Rollo_runter at {sunset(-1800,'16:00','20:00')} set OG_Zimmer_Rollo on");
fhem("attr OG_Zimmer_Rollo_runter room 32_Rollo");
}
}
Um 2 Uhr wird geprüft ob Wochenende ist oder nicht und entsprechend die Defines für OG_Zimmer_Rollo_hoch und OG_Zimmer_Rollo_runter erzeugt.
Da nun das Define existiert kann ich diesem auch ein Attribut zuweisen.
Oder, Zrrronggg! hatte schon auch recht, ich kann nur etwas ein Attribut zuweisen das ich in FHEM auch sehen kann.
Jeder Code wird grundsätzlich erstmal im Raum Unsorted aufgelistet.
Sobald er dort erscheint kann ich ihn in einen anderen Raum verschieben - ihm das Attribut room zuweisen.
Was bei dir eventuell klappen würde wäre folgendes:
define AussenLampeEin at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set AussenLampe on ;; define Lampe_spaeter_aus at +05:00:00 set AussenLampe off;; attr Lampe_spaeter_aus room 2_Licht Eingang
Wobei ich mir nicht sicher bin ob das Leerzeichen zwischen 2_Licht und Eingang dem nicht ein Schnippchen schlagen dürfte.
Besser wäre es den Raum
2_Licht_Eingang zu nennen.
Grüße
define AussenLampeEin at *{sunset("HORIZON=-0.833",0,"16:00","22:00")} set AussenLampe on ;; define Lampe_spaeter_aus at +05:00:00 set AussenLampe off;; attr Lampe_spaeter_aus room 2_Licht Eingang
Also bei mir haben Räume mit Leerzeichen nicht geklappt.
Ich bin mir auch nicht sicher, worum es hier geht. Wenn's nur um Kontrolle geht, dass Lampe_spaeter_aus auch angelegt wurde: Das sähe man ja in "everything". Ich kann mir nur schwer vorstellen, dass man jeden Tag kontrollieren will, wann die Lampe genau ausgeht um überrascht festzustellen, dass es heute 3 Minuten früher oder später als gestern sein wird. Ausserdem ist meiner Erfahrung anch der WAF schlecht, wenn in einem Raum bestimmte Angaben mal zu sehen sind und mal nicht. Im Vorliegenden Fall würde sich ja die Anzeige des Raumes "2_Licht_Eingang" 2x am Tag ändern.
Also moonsorrox, worum gehts dir? Gelegentlich mal kontrollieren können, wann die Lampe ausgeht? Dann einfach in "everything" nachsehen, fertig.
@Zrrronggg
also erst einmal vielen Dank für deine Bemühungen, mir zu helfen, deine Fragen beantworte ich jetzt mal und hoffentlich eindeutig..
Also mit den Räumen und den Leerzeichen hat bei mir bisher geklappt. Ich zeige das auch mal an einem Bild und funktioniert hat es. Aber zu meiner Entschuldigung ich wusste nicht das dies mit den Leerzeichen Probleme machen kann...!
Jetzt sieht es so aus und ja es funktioniert so: Zeiten sind momentan aus meinem letzten Test, hatte die auschaltzeit auf 5min gesetzt zum probieren
define AussenLampeEin at *{sunset("HORIZON=-0.833",0,"18:25","22:00")} set AussenLampe on ;; define Lampe_spaeter_aus at +00:05:00 set AussenLampe off ;; attr Lampe_spaeter_aus room 2_Licht Eingang
attr AussenLampeEin room 2_Licht Eingang
attr AussenLampeEin alias Beleuchtung 3x LED An
attr AussenLampeEin group Zeiten
so sieht es in der Weboberfläche aus: Bild1
Es geht eigentlich nicht um die Kontrolle, sondern mehr darum, dass ich dachte wenn keine Zeit angezeigt wird, dass irgend etwas in meinem Code falsch ist, egal ob nun in meinem definierten Raum oder in Unsorted oder auch Everything.
Ich dachte weiterhin das die Anzeige auch eine Kontrolle ist, dies war also ein Trugschluss meinerseits. Deshalb hatte ich auch angenommen es geht nicht.
Es geht mir also nicht um das kontrollieren, obwohl ich eingestehen muss das ich es noch öfter kontrolliere - Grund dafür ist ein defekter Switch der mich einiges an Nerven gekostet hat, den ich aber schon zurück geschickt habe.
Ansonsten geht es mir nur um die variable Ein/Ausschaltung der Lampen es sollte eben nicht jeden Tag der selbe Ausschaltzeitpunkt sein also so bis er die definierten Zeiten "Nicht vor" und "Nicht nach" erreicht hat.
Der Einschaltpunkt ändert sich ja mit Sunset und das wollte ich auch mit der Ausschaltzeit erreichen
Hoffentlich ist es verständlich erklärt ;)
Hallo,
Hat schonmal einer eine Funktion die Sonnenwende/Mittag ausgibt Programmiert.
Ich hatte gedacht das ich wie folgt Mittag mit Loggen könnte. Falsch gedacht.
#define Sonnemittag1 at *{sunrise(0)+sunset(0)-sunrise(0)} set SonneDA * 100
Hat einer eine Idee?
Hallo,
Zitat*{sunrise(0)+sunset(0)-sunrise(0)}
Sonnenaufgang+Sonnenuntergang-Sonnenaufgang = ????
Richtig. Das ergibt Sonnenuntergang.
Logisch weil: 6 + 13 - 6 = (nein keine Fangfrage) 13 ergibt.
Ich bin nur grad am grübeln wieviel sich Mittag täglich von 12:00 Uhr wegbewegt.
Grüße
Wie wär's mit:
(SA+SU)/2 ?
Das ergibt (mathematisch) den Durchschnitt - ob das meteorologisch stimmt, weiß ich aber nicht.
Uwe
Hallo,
Sorry Stimmt natürlich 7+17-7 Uhr quatsch .
Wollte es auch so schreiben.
#define Sonnemittag1 at *{sunrise(0)+((sunset(0)-sunrise(0))/2)} set SonneDA * 100.
[/size]Beispiel 7 + ((17-7)/2) = 7+5 = 12uhr
Sonnenhöchststand ist leider nicht immer 12 Uhr.[/size][size=78%] [/size][/size][size=78%]z.b. [/size][/size][size=78%] Portugal oder Polen geht die Sonne zu unterschiedlichen Uhrzeiten auf und unter. Ob es meteorologisch auch der Höchststand ist keine Ahnung. [/size]
[/size]
[/size][size=78%]Aber Puschel hat recht! Einmal für den Standort errechnet kann ich auch z.b. 12 Uhr verwenden.[/size]
[/size]
[/size][size=78%]Mein Problem mit der Rechnung war, dass keine Uhrzeit als Ergebnis heraus kam. [/size]
[/size]
Man kann den "Mittag" auch aus der geogr. Lange ermitteln:
15° entsprechen einer Stunde Differenz. D.h. in Görlitz steht die Sonne um 12 Uhr (MEZ) im Zenit, weil es auf dem 15. Längengrad liegt und dieser die Mitte der MEZ-Zeitzone bildet. Um 13Uhr MEZ steht dann die Sonne in London im Zenit - also nur die geogr. Länge in's Verhältnis zur Zeit setzen!
PS Die Sonne kann natürlich nur zwischen nördlichem und südlichem Wendekreis im Zenit stehen, also ist der höchste Punkt der Tagesbahn der Sonne gemeint.
Moin zusammen,
ich beschäftige mich seit kurzen mit sunrise/sunset und habe ein paar Verständnisfragen...
Wenn ich ,,sunset_abs" verwende, wird der Befehl 2x kurz hintereinander ausgeführt.
DEF:
*{sunset_abs("CIVIL",+900,"17:45","21:45")} set Rollo_Kueche off
Log:
2020.03.18 19:21:13 5: exec at command Rollo_Kueche_runter
2020.03.18 19:21:13 3: CUL_HM set Rollo_Kueche off
2020.03.18 19:21:13 5: redefine at command Rollo_Kueche_runter as *{sunset_abs("CIVIL",+900,"17:45","21:45")} set Rollo_Kueche off
2020.03.18 19:23:01 5: exec at command Rollo_Kueche_runter
2020.03.18 19:23:01 3: CUL_HM set Rollo_Kueche off
2020.03.18 19:23:01 5: redefine at command Rollo_Kueche_runter as *{sunset_abs("CIVIL",+900,"17:45","21:45")} set Rollo_Kueche off
Mit DEF:
*{sunset("CIVIL",+900,"17:45","21:45")} set Rollo_Kueche off
wird der Befehl nur 1x ausgeführt.
Das mit der doppelten Ausführung aus der oberen DEF liegt wohl daran, dass nach dem ausführen eine Neuberechnung für den eigentlich nächsten Tag erfolgt. In der ersten Jahreshälfte verschiebt sich aber die Sonnenuntergangszeit täglich um ein paar Minuten nach hinten, somit ist die neu berechnete Sonnenuntergangszeit am aktuellen Tag noch nicht erreicht und der Befehl wird ein zweites mal ausgeführt.
Zusammengefasst:
1. Jahreshälfte: ,,sunset_abs" + ,,sunrise"
2. Jahreshälfte: ,,sunset" + ,,sunrise_abs"
Habe ich das so richtig verstanden?
Wenn ja meine Frage, kann man die Neuberechnung irgendwie um z. B. 10 Min. rauszögern oder kann man dafür einen festen Zeitpunkt z. B. 01:00 Uhr festlegen?
Ansonsten müsste man 2x im Jahr die DEF-Einträge anpassen?!
Da ich mehrere Beiträge gelesen habe in den ,,sunrise_rel" favorisiert wurde, wollte ich das auch mal testen. Irgendwie bekomme ich das aber nicht hin...
DEF:
*{sunset_rel("CIVIL",+900,"17:45","21:45")} set Rollo_Kueche off
Unter ,,Readings" – ,,state" wird mir dann die noch verbleibende Zeit bis zur nächsten Ausführung angezeigt (z. B. ,,Next: 09:30:00" wenn es 10:00 Uhr ist und die nächste Schließzeit 19:30 Uhr ist).
Das müsste soweit noch alles richtig sein.
Ich hätte jetzt aber gedacht, dass die ,,Next:" Zeit quasi runter zählt, also das dort noch 08:30:00 steht wenn ich um 11:00 Uhr wieder schaue. Das passiert aber nicht. Nur wenn ich beim DEF ein modify mache, wird die Zeit aktualisiert. Somit fährt dann auch der Rolladen nicht um 19:30 Uhr runter.
Was mache ich hier falsch, muss ich noch zusätzlich etwas definieren?
Über Tipps würde ich mich sehr freuen.
Ich habe jetzt nicht sofort eine Antwort, aber 2 Anmerkungen:
Wenn
{sunset("CIVIL",+900,"17:45","21:45")} set Rollo_Kueche off
geht, und deine Theorie richtig ist, müsste es dann ja MORGEN 2 Schaltungen geben. Hast du das mal probiert?
Ferner: CIVIL ist default, brauchst du als nicht angeben. Schadet natürlich auch nicht. Zu REL kann ich nichts sagen, benutze ich nicht. Ich verwende nur stumpf
{sunset(+X,"xx:yy","zz:ff")} set blubber
und das funktioniert bei mir. Wenn ich es recht überlege, würde ich aber gar nicht so ohne weiteres merken, wenn es eine zweite Schaltung gäbe, da ich nur Licht schalte. Und 2x on oder 2x off macht dann weiter nichts.
Hallo Zrrronggg!,
mit sunset müsste es meiner Meinung nach ab ca. 21 Juni 2 Schaltungen geben, wenn die Tage wieder kürzer werden...
Hi,
meines Wissens macht sunrise und sunset doch genau in diesen Fällen (Verwendung im at) das Richtige. Beide Funktionen sind extra dafür gebaut.
Also im at (normale Zeitschaltung) immer sunrise und sunset verwenden. Die anderen Funktionen sind für Spezialfälle.
Gruß Otto
Und vielleicht nicht den uralten Thread wieder hervorkramen - das verwirrt nur.
LG
pah