Hi an alle ich verzweifele mit structure .Will alle meine Lampen schalten

Begonnen von kleinz, 02 Juli 2015, 18:22:29

Vorheriges Thema - Nächstes Thema

kleinz

Achso ich soll ein eigenes define machen damit kann ich das entkoppeln .
Was heisst das eq im Befehl?

kleinz

wie kann ich da jetzt die Sommer oder winterzeit abfragen.
Muss ich das dann für je Sommer und winterzeit machen .
Also 2 * define
Danke aus Leverkusen

Otto123

Zitat von: kleinz am 17 Juli 2015, 11:27:13
Was heisst das eq im Befehl?
eq = equal = gleich -> Operatoren
Ist bei Dir die "Suchen Funktion" im Internet kaputt? Hier steht mal was zu Operatoren, ich machen den Link mal komplett, da ich das Gefühl habe Du übersiehst meine "schönen" Links
http://www.fhemwiki.de/wiki/AT_um_eine_Temperaturabh%C3%A4ngige_Nachtabsenkung_zu_realisieren

Zitatwie kann ich da jetzt die Sommer oder winterzeit abfragen.
Aber Sommer und Winterzeit ist doch geregelt da ist 19:00 Uhr immer um Sieben  8)

Du willst das Sonnenstandsabhängig machen? Dann nimm das sunset Modul http://www.fhemwiki.de/wiki/SUNRISE_EL

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kleinz

Hi Otto .
Ich hatte die command ref gelesen aber ich versteh nicht alles bin kein guter Script programmierer.
Das mit Sunrise werd ich die Tage in angriff nehmen

kleinz

Also hab beide deiner Links gelesen
Hab aus dem letzteren Link
dieses entnommen define Wohnzimmerlampean at +{sunset(0,"17:00","3:00")} set Wohnzimmer_Lampe_Esstisch on
Ich hab bewusst mal die zusatzabfrage ob Wohnung_kommen gesetzt ist oder nicht weggelassen.

Ich komm mit den ganzen Parametern nicht klar.
Es sollte doch einfach Sonnenuntergang -3600 = set Wohnzimmer....... on gehen.
Er zeigt mir unter Next aber nur 3:00 heisst das jetzt das um 3 Uhr geschaltet wird?
Ich hab mal aus dem * ein + gemacht funktioniert auch nicht
Dieses hab ich auch in der Config gehabt define Lampe_Esstisch_An DOIF (at *{sunset(-3600,'17:00','03:00')} and ([Wohnung_kommen] eq "on")) (set Wohnzimmer_Lampe_Esstisch on)
Funktioniert auch nicht
Ich werd jetzt noch weiter lesen

kleinz

Was mir grad noch so in den Sinn kommt.
Benutzer ist zuhause also Wohnung_kommen = on
Sonne ist schlafen gegangen .
Wird jetzt automatisch die Lampe angemacht ?
Also denke ich ich muss den noch nicht installierten Türkontakt von Homematik mit ins Boot nehmen
Reihenfolge Haus betreten(automatisches Wlan login) present wird gesetzt dann Türschalter meldet öffnen der Tür jetzt die
Abfrage ist die Sonne unter gegangen?
So sollte es doch sein oder?


Otto123

Moin,

ich finde Du springst immer zu schnell nach vorne. Wenn Du den Syntax nicht gleich verstehst und nicht so der Programmierer bist, dann taste Dich doch langsam ran. Klar viel Module erschlagen einen mit den ganzen Möglichkeiten, aber meist geht es auch erstmal einfach.
sunset bietet mehrer Parameter, im übrigen kannst Du die einzelnen Parameter auch gut testen in dem Du sie erstmal in der Befehlszeile eingibst. {sunset()}liefert Dir den nächsten Sonnenuntergang.
{sunset(-3600)}den Sonnenuntergang minus eine Stunde.
Sonnenuntergang ist ne relative Geschichte. Du musst Deinen Ort eintragen (global Attribute)
Du kannst sagen ob Du auf dem Berg stehst, Richtung Meer schaust oder ein Berg bei Dir die Sonne eher untergehen lässt.
Was Du gemacht hast ist eine zusätzliche Begrenzung des Zeitraumes, die ist so wie Du die gemacht hast einfach falsch.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kleinz

Guten Morgen .
Ich hab in der Conig global Attr latitude und longitude eingestellt so wie im Thread geschrieben.
Sunset liefert mir auch den Sonnen auf und unter Gang Sunset Sunrise
Ich versteh nicht wie ich halt sagen kann .
Ab Sonnen Untergang minus eine std bis Sonnen Aufgang plus eine Stunde soll wenn die Tür aufgeht das Licht angehen.
Ich kann entkoppeln
Wenn obiges erfüllt dann set schalten erlaubt in
Wenn Tür auf und schalten erlaubt on dann Wohnzimmer. Lampe einschalten.
Hm ich glaube ich hatte dazu was gelesen. Schau gleich nochmal

Hollo

Zitat von: kleinz am 19 Juli 2015, 02:08:07
...Ich komm mit den ganzen Parametern nicht klar...
Ich hab mal aus dem * ein + gemacht funktioniert auch nicht...
Funktioniert auch nicht...
Ich werd jetzt noch weiter lesen
Du machst viel zu viel auf einmal und kopierst wild irgendwelche Codeschnipsel zusammen.

Lass das ganze System erstmal. Setz Dich mit einem Kaffee hin und lese Dir ganz in Ruhe das Einsteiger.pdf durch.

Dann machst Du Dir eine ganz simple Funktion; hab ich irgendwie schon mal geschrieben.
- EINE Lampe, die Du ein und ausschalten kannst.
- dann probierst Du Schritt für Schritt... schalten per at (* und + bedeuten ganz unterschiedliches Verhalten)
- dann definierst Du sunset/sunrise (hast Du die Koordinaten für Dich korrekt? Oder die aus einem Beitrag?)
- dann guckst Dir die Zeiten dort an (passen die? funktioniert meist erst am nächsten Tag, sei geduldig)
- dann kombinierst du sunset und at

Im komplexen Livesystem sind Syntaxfehler oft schwer zu erkennen; Du hast eine riesige Baustelle!
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

kleinz

Hi
Ich stimme dir nicht ganz zu Sorry
Also ich habe das ganze Schritt für schritt aufgebaut mit meiner MAX EQ3 Heizungssteuerung fing es an
Dann kam der RPI (Pilight/Fhem)
Muste feststellen das die 433MHZ Steckdosen sch... sind und keine Rückmeldung möglich
Also kam der HM Lan Adapter dazu und ersetzt nun alle meine günstigen Steckdosen.
Nur noch die Beleuchtung wird über Philight geschaltet was auch super funktioniert.
Dann habe ich mich mit er Weckerfunktion beschäftig.
Als das funktionierte ist die Anwesenheitserkennung und das schalten der Wohnzimmer Lampe beim kommen und ab einer bestimmten uhrzeit
(Sonnenuntergang- 3600 /Sonnenaufgang +3600) jetzt mein Ziel.
Die erweiterung ,die Anwesenheitsprüfung auch als Alarmanlage An/aus zu benutzen kam neben bei.
Funktioniert auch. Dort wird halt noch der Türkontakt eingebunden wenn er da ist.
Also nur zwei Baustellen
Latitude und Longitude hab ich meine Daten gesetzt 51.05   7.0167
attr global autoload_undefined_devices 1
attr global latitude 51.05
attr global logfile ./log/fhem-%Y-%m.log
attr global longitude 7.0167
attr global modpath .
attr global motd SecurityCheck:\
attr global latitude 51.05
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

Ich habe eigendlich nur die beiden attr eingebaut die anderen Zeilen hat fhem erstellt.
Das SecurityCheck muss ich mal untersuchen.
Ich habe auch in meiner Config alles versucht Strukturiert zu halten
Räume getrennt und Optisch immer ################Schlafzimmer########## usw eingebaut
Mit Pearl kenne ich mich nicht aus Aber mit PHP ,Mysql .Hab nen eigenen Server zu Hause der 24/7 läuft. Viele der Scripte habe ich selber gebaut
Z.b ein System um für unser Online Autorennen eine Benutzer und Admin ebene zu haben
Alle Scripte aus meiner Feder dauer etwa 2 Jahre mit Automatischem Mailversand ,Urkunden werden per Mail Versand usw
Daher weiss ich das ich nicht wild alles irgendwo rein kopieren kann.
Ich setze die neuen versuche immer ans Ende der Config.


Otto123

Zitat von: kleinz am 19 Juli 2015, 12:27:01
Ich setze die neuen versuche immer ans Ende der Config.
Du editierst per Hand in der fhem.cfg? Keine so gute Idee...

ZitatAb Sonnen Untergang minus eine std bis Sonnen Aufgang plus eine Stunde soll wenn die Tür aufgeht das Licht angehen.
Das geht nicht mit dem Konstrukt was Du oben angesetzt hast. Es amcht das hier :
Zitat# Switch lamp1 on at real sunset, not before 18:00 and not after 21:00
    define a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kleinz

Hi Otto
Ja ich mache meine Einträge immer per Hand bin das nicht anderst gewohnt.
Ok gebs zu hab mir mal in der Config eine Zeile die ich nicht verstanden hab auskommentiert da ging fhem nicht mehr also
sudo nano /opt/fhem/fhem.config und ändern dann war alles im LAck

Ich habe jetzt folgendes gemacht abwarten auf 0 uhr 5
define Wohnzimmerlampean at *{sunrise("REAL",1800,"00:03","08:00")} setstate Wohnzimmerlampean on
attr Wohnzimmerlampean devStateIcon on:FS20.on off:FS20.off
#attr Wohnzimmerlampean eventMap on:on off:off
attr Wohnzimmerlampean room Wohnzimmer
define Wohnzimmerlampean1 at *{sunset("REAL",1800,"16:00","23:59")} setstate Wohnzimmerlampean1 on
attr Wohnzimmerlampean1 devStateIcon on:FS20.on off:FS20.off
#attr Wohnzimmerlampean1 eventMap on:on off:off
attr Wohnzimmerlampean1 room Wohnzimmer
define Wohnzimmerlampeoff at *{sunrise("REAL",1800,"08:01","15:59")} setstate Wohnzimmerlampean off ;; setstate Wohnzimmerlampean1 off

Ich setze zwei merker Wonzimmerlampean und .....an1 daraus mach ich ein struct (oder Schaltung)
Geht das so?

kleinz

Oh man hatte denkfehler
##Ab x Uhr Lampe dazuschalten
define Wohnzimmerlampeaus at *{sunrise("REAL",+3600,"00:06","08:00")} set Lampen_merker_Wohnzimmer off
attr Wohnzimmerlampeaus room Wohnzimmer
define Wohnzimmerlampean at +*{sunset("REAL",-4740,"16:00","23:59")} set Lampen_merker_Wohnzimmer on
attr Wohnzimmerlampean room Wohnzimmer
define Lampe_Esstisch_An DOIF (([Wohnzimmerlampean] eq on) and ([Wohnung_kommen] eq "on")) (set Wohnzimmer_Lampe_Esstisch on)


Bin mal gespannt sollte aber funktionieren oder?
Für heute ist mal sense

Otto123

Hi,

mir ist nicht klar was Du wirklich erreichen willst, aber was Du definiert hast:
Zitatdefine Wohnzimmerlampeaus at *{sunrise("REAL",+3600,"00:06","08:00")} set Lampen_merker_Wohnzimmer off
schaltet Dir morgen früh zwei Stunden nach Sonnenaufgang den LampenMerker aus, aber nicht später als um 8:00 Uhr. Da die erste Zeit vor jedem möglichen Sonnenaufgang in Leverkusen ist kommt die nie zum Tragen.
Zitatdefine Wohnzimmerlampean at +*{sunset("REAL",-4740,"16:00","23:59")} set Lampen_merker_Wohnzimmer on
schaltet Dir im Moment des define plus die Zeit früher als 2h und 19 min vor dem Sonnenuntergang, aber nicht vor 16:00Uhr. Da die zweite Zeit nach jedem möglichen Sonnenuntergang liegt, kommt die nicht zum Tragen.

Also nochmal: der Ausdruck "{sunrise("REAL",+3600,"00:06","08:00")}" liefert Dir ein Zeit in der Form hh:mm:ss - damit startet Dein at.
Die Kombination at mit "+*{sunset("REAL",-4740,"16:00","23:59")}" !? Da habe ich eigentlich keine Ahnung was dabei rauskommt. Beispiel aus der commandref define a7 at +*{3}00:00:02 set lamp on-for-timer 1  # Blinke 3 mal

Als eventueller Ansatz, aus meinem FHEM:
define Tageslicht dummy
define SetTageslich0 at *{sunset("REAL")} set Tageslicht 0
define SetTageslich1 at *{sunrise("REAL")} set Tageslicht 1



Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz