FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: visionsurfer am 23 Oktober 2016, 20:06:48

Titel: Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 23 Oktober 2016, 20:06:48
Hallo,

wir haben bei uns unterschiedliche Fensterbeschattung. Zum einen Fenster mit normalen Rollos und zum anderen einige Fenster mit Raffstores.

Fenster 1-4 Raffstores
Fenster 5 Rolladen
Fenster 6 Rolladen

Nun gehe ich jeden morgen durch die Wohnung und kippe die Lamellen von Fenster 1-4 ein bisschen und lasse den Rolladen von Fenster 5 komplett hochfahren. Das nervt natürlich. Fenster 6 bleibt unberührt (da Schlafzimmer) und wird erst deutlich später von mir hochgefahren. Per Hand (also Knopfdruck an jedem Fenster).

Nun ist ja FHEM im Haus und ich will in das ganze ein bisschen Logik bringen. Wenn Fenster 1-5 komplett gleich wären, wäre das ja überhaupt kein Problem. Ich hab aber ja schon wieder die Besonderheit, dass ich Fenster 1-4 nur die Lamellen auf 25% kippen lassen möchte und Fenster 5 aber komplett öffnen soll.

Alles z.B. bei Sonnenaufgang, oder ab einem bestimmten Luxwert von meiner Wetterstation (muss ich noch überlegen, was mehr Sinn macht). Wenn ich dann morgens aus dem Schlafzimmer komme, sind die Fenster schon entsprechend in der richtigen Position und es ist nicht mehr so dunkel. Außerdem muss ich nicht alles per Hand machen.

Ich stelle mir nur die Frage, wie ich das Projekt am besten angehe. Bilde ich z.B. für Fenster 1-4 eine Gruppe und lasse Fenster 5 komplett außen vor und behandel Fenster 5 alleine ?
Oder sollte man alles in eine Gruppe fassen (Fenster 1-5) und dann dort nur unterschiedliche Befehle einbringen (Fenster 5 komplett öffnen, die anderen nur Lamellen auf 25%).

Der einfacherer Weg ist wahrscheinlich die unterschiedlichen Fenster zu trennen, oder ?

Ich will mir halt FHEM auch nicht unnötig zuballern.

Wie würdet ihr da dran gehen ?

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CoolTux am 23 Oktober 2016, 20:11:52
Ich würde pro Wohnung/Hausseite eine structure machen. Aber nur wo die Geräte gleich sind. Das eine Gerät kannst du ja gesondert machen.
Deine ganze Konstruktion nimmt langsam ziemlich an Größe an. Überlege ob da nicht eine 99_myUtils vielleicht besser wäre. Sicherlich kommt später noch Beschattung hinzu oder Rolladen runter bei Sturm und so ne Sachen. Am besten gleich richtig Anfangen bevor daraus ellenlange DOIF Geschichten werden.
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 23 Oktober 2016, 21:10:24
Hi,

wie jetzt schon Größe ? Nicht wirklich. Ich finde das ist nur der Anfang, um zu üben und warm zu werden.

Ich habe hier 320 qm voller Technik, die ich nun in Form bringen will. Da sollen noch dutzende Sachen kommen. Klar auch sowas wie "bei Sturm dann XY".
Außerdem will ich noch einiges an "Szenen" bilden. Also TV, Kochen, Essen usw.

Dazu sollen dann auch noch solche Sachen wie "Waschmaschine" fertig, "Post im Briefkasten" usw. kommen.

Als erstes muss ich aber noch mehr "Grundlagen" verstehen. Wie kann ich das alles miteinander verknüpfen. Wie du ja selbst gesagt hast, es gibt wohl immer verschiedene Wege zum Ziel.

Ich muss mir auch noch eine saubere Bezeichnung der Devices und Räume usw. überlegen. Also alles Schritt für Schritt. Als erstes versuche ich die Sachen anzugehen, die mich schon seit Monaten nerven. Ich hasse Lichtschalter zu drücken oder grundsätzlich schalter. Daher will ich so viel wie es geht, Automatik und Logik reinbringen.

Ich hoffe ja auch sehr das nächste Woche endlich Alexa kommt und dann schon bald jemand die deutsche Alexa in FHEM einbindet und das ganze per Sprache zu steuern geht. Sinnvoll meine ich.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CoolTux am 23 Oktober 2016, 21:41:05
Ok machen wir es mal anders. Ich beschreibe mal kurz wie ich das habe bei mir. Vielleicht hilft das ja.
Es ist ein etwas älterer Text, mittlerweile sind hundert Sachen dazu gekommen.

Zitat
Ich möchte Euch gerne einen typischen Tag von mir beschreiben. Ich besitze eine Hausautomation. Nennen wir sie der einfachheithalber Sam.
Um 5 Uhr beginnt mein Tablet an der Wand im Schlafzimmer mir eine Weckmusik zu spielen. Die Musik selbst kommt von Google Music, das Abspielen wurde von Sam angestoßen. Kurz Zeit sich noch mal zu strecken, in 2 Minuten geht im Flur, im Bad, in der Küche und im Wohnzimmer das Licht an. In der Heizsaison hat Sam bereits eine Stunde vor dem aufstehen die Wohnung vorgeheißt. Im Wohnzimmer wird mir über mein Tablet und einer Bluetoothbox von Sam angesagt wie heute die Tiefst- und Höchsttemperatur wird und wie die Wetteraussicht. Ich mache mich fertig und verlasse dann das Haus. Da sonst noch niemand anderes aufgestanden ist, schaltet Sam nach 5 Minuten Abwesenheit das Licht in der Wohnung wieder aus. Die Heizung wird nicht runter gedreht da Sam weiß das die anderen Familienmitglieder noch schlafen und nicht das Haus verlassen haben.
In der Zwischenzeit ist der Wecker meine Großer angesprungen, vorgeheißt werden musste nicht da Sam weiß das ich bereits aufgestanden bin. Somit wird lediglich zur Weckzeit die Musik bei ihr abgespielt und 2 Minuten später die Lichter im Bad, Flur Küche und Wohnzimmer angemacht. Die Schreibtischlampe im Jugendzimmer simuliert einen Sonnenaufgang und meine Große steht auf. Da sie immer leicht ab zu lenken ist startet 15 Minuten bevor sie das Haus verlassen muß ein Countdown, welcher erst eine grüne Farbe dann eine gelbe und zum Schluß eine rote Farbe ihrer Nachttischlampe anzeigt. Spätestens jetzt sollte sie das Haus verlassen haben.

Wie gesagt das ist nur ein kleines Beispiel.

Größere Sachen verarbeite ich in 99_myUtils Subroutinen. So habe ich zum Beispiel eine 99_myUtils für die Heizungssteuerung, eine weitere für die Lichtsteuerung.
Morgens geht bei mir automatisch das Licht an wenn der erste auf steht, abhängig davon ob Kind oder Elternteil. Wenn es draußen hell genug ist geht das Licht aus und zwar überall.

Abends geht das Licht hell an wenn es draußen zu dunkel wird und ab 20 Uhr kommt eine bestimmte Lichtszene und ab 21 Uhr eine andere.




Grüße
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 23 Oktober 2016, 22:58:05
Genau so stelle ich mir das auch vor.
Wir sind noch zu zweit, daher habe ich im Augenblick einen anderen Bedarf. Aber trotzdem sehr geil.

Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CoolTux am 23 Oktober 2016, 23:18:11
Na vielleicht seid Ihr ja irgendwann zu dritt. Mein Kurzer ist 3 und immer wenn wir ihn Abends fertig machen wollen wird das Badezimmer vorgeheizt. Einfach per Sprache. Wenn die Tür oder ein Fenster im Bad auf ist gibt es eine Durchsage. Wenn vorgeheizt wird und jemand lässt dann die Tür auf oder macht ein Fenster auf gibt es auch eine Durchsage  ;D
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 24 Oktober 2016, 12:52:09
Hi,

ich habe noch kurz eine Frage. Kann man eigentlich dann auch mehrere DOIF Abfragen einrichten.

Also ich brauche ja morgens eine DOIF und vielleicht möchte ich dann am Abend auch unter gewissen Umständen die Jalousien wieder schließen. Dann brauch ich für Abends noch ein ?
Sehe ich das richtig ?

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: Hollo am 24 Oktober 2016, 12:53:56
Ich liebe diese Durchsagen für jeden Blödsinn...  "Schlummermusik für 30 Minuten aktiviert" .  ;D
Wenn meine (Hintergrund-)Beschallung an ist, erfolgt die Ausgabe darüber; andernfalls über das RSS-Tablet in der Küche.

Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CBSnake am 24 Oktober 2016, 13:02:19
Hi Visionsurfer,

du kannst dazu 2 DOIF machen oder beides in eins packen, irgendwann wird es halt unübersichtlich ;-)

Nach und nach wirst du eh Vorlieben für gewisse Module entwickeln. AT, Notify und DOIF können/machen so ziemlich das gleiche. Sind aber auch in den Feinheiten unterschiedlich zu "programmieren"
Ich hab beruflich den SPS Hintergrund arbeite also lieber mit WENN DANN SONST (DOIF) als mit Perlcode ;-)
Am Anfang hab ich alles mit Dummys erschlagen, ähnlich wie der Merker bei der SPS, Dummy1 schreibt in Dummy2 der dann in Dummy3 etc. kann man machen wird hier wohl auch teils belächelt.
Aktuell nutze ich z.B. einen Dummy als Übergruppe und die dazugehörigen weiteren Dummys schreiben in dessen Userreadings. Vermutlich wäre auch das einfacher mit Pearl direkt zu lösen. Mich dort reinzuarbeiten fehlt mir aber aktuell die Zeit ;-)

Grüße
Achim
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 24 Oktober 2016, 13:45:48
Hi,

ok. Muss ich mir mal anschauen. WIe gesagt brauche ich wahrscheinlich etwas für z.B. morgens und am Abend will ich auch noch mal was schalten. Da ich noch komplett am Anfang stehe, weiß ich noch nicht wie der beste Weg ist.

Wenn ich dann z.B. im Raum Wohnzimmer 2 DOIF haben, erkennt FHEM dann, wann er was machen muss ? Klar, anhand der Uhrzeit oder andere Werte, dann muss aber im Hintergrund immer ziemlich viel überwacht werden.

Ich will halt z.B. erreichen das morgens die Jalousien in eine gewisse Position fahren und am Abend sich wieder schließen. Das ganze wahrscheinlich an irgendwelche Werte gekoppelt (Helligkeit Uhrzeit usw.). Hier muss ich noch rausbekommen, welche Werte Sinn machen. Wahrscheinlich am besten die Helligkeit von meiner Wetterstation auf dem Dach.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CBSnake am 24 Oktober 2016, 13:52:18
Ja, schlussendlich muss FHEM alle Device überwachen, deswegen kommen z.B. Fritz boxen mit FHEM wohl recht schnell an ihre Grenzen, sprich sie werden langsam. Ich hab hier nen Pi 2 und noch läuft er anstandslos, trotz Dutzender at doif notify etc.

Gesendet von meinem SM-P605 mit Tapatalk

Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 24 Oktober 2016, 17:32:12
ok. Bei mir läuft es auf einem neuen Pi3, dann sollte es hoffentlich erst mal passen.

Werde gleich heute Abend mal weiter probieren.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 24 Oktober 2016, 22:17:03
Jungs, ich wollte das gerade mal schnell programmieren. Ich hab alle meine Rolläden nun in FHEM drin. Jetzt kann ich mit der Logik beginnen.

Für mich kam jetzt aber noch mal der Gedanke auf, ob ich besser ein NOTIFY oder ein DOIF nutze ?

Wenn ich morgens z.B. um 6:40 die Rolladen hochfahren lassen möchte, reicht doch ein NOTIFY ? Weil ich will den Rolladen ja dann tagsüber da stehen lassen und vielleicht abends in einen anderen Zustand bringen ?

Weil ein DOIF ist doch eher ein wenn dann und wenn nicht, dann Befehl ?

So könnte ich ja sicherlich in ein NOTIFY auch einbauen wenn Helligkeit von Wetterstation XY dann Rolladen hoch. Oder geht das nicht in ein NOTIFY ?

Weil normal wollte ich ein DOIF machen ? Ich stelle mir nur gerade die Frage, wie das Ende aussieht.

define rolladen_morgens DOIF ([wetterstation_helligkeit] > 5) (set rolladen value 0) DOELSE (?????????????)

Was macht man nach DOELSE ?

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CBSnake am 25 Oktober 2016, 06:03:10
Moin,

nach DOELSE ist ende, willst das von Abends noch mit reinpacken dann doif. ....DOELSEIF. ....DOELSE

Gesendet von meinem SM-P605 mit Tapatalk

Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 08:44:52
Moin,

ok. Also brauche ich normal nach DOELSE nichts weiter einfügen ? Oder muss das zwangsweise so aussehen ?

define rolladen_morgens DOIF ([wetterstation_helligkeit] > 5) (set rolladen value 0) DOELSE (set rolladen value 100)

Passiert es dann aber nicht, das der Rolladen automatisch schließt, wenn Licht unter 5 ist ?

Ich will ja einfach nur, das erst mal nur meine Morgenroutine abgearbeitet wird. Was ich am Abend machen will, weiß ich noch nicht. Daher soll er nicht zwangsweise am Abend automatisch wieder schließen, wenn Licht kleiner 5 ist.

Also kann man das nach dem DOELSE einfach weg lassen ?

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: l2r am 25 Oktober 2016, 08:47:07
ich steuere meine ganzen Szenen am Morgen über RESIDENTS bzw. ROOMMATE mit dem zugehörigem Wecker. Ist vllt. am Anfang etwas komplex, aber wenn man sich da einmal reingearbeitet hat, dann läuft das 1a und ist vor allem gut zu erweitern.

http://www.fhemwiki.de/wiki/Weckautomation


define rolladen_morgens DOIF ([wetterstation_helligkeit] > 5 and [rolladen:value]>0 ) (set rolladen value 0)
attr do always


würdest du das do always weg lassen, dann wird das doif nur ein einziges mal ausgeführt


Gruß Michael
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 09:20:39
Hi,

ok. Muss ich mir mal anschauen. Was besser ist.

Aber bei deinem Beispiel mit dem Code, ist jetzt hinten das Value falsch, oder ? Value 0 und Value 0 passt dann nicht ? :) Morgens soll der Rolladen ja aufgeben und nicht schließen.

Ah so und dann muss immer bei solchen Definitionen ein attr da always dran ? Ich dachte der hört halt im Hintergrund immer mit und wenn die Werte wieder passen, dann führt es es automatisch aus. Täglich.

Weil im Badezimmer hab ich z.B. ein DOIF gebaut, was eine Lampe schaltet, aber nur wenn Helligkeit unter einem Wert ist und Bewegungsmelder eine Bewegung erkennt. Da hab ich auch kein attr do always drin. Sondern das läuft einfach so und so wie ich mir das vorstelle.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: Damian am 25 Oktober 2016, 09:39:14
Zitat von: l2r am 25 Oktober 2016, 08:47:07

define rolladen_morgens DOIF ([wetterstation_helligkeit] > 5 and [rolladen:value]>0 ) (set rolladen value 0)
attr do always


würdest du das do always weg lassen, dann wird das doif nur ein einziges mal ausgeführt


Gruß Michael

Das stimmt nicht. do always ist hier nicht sinnvoll, weil Helligkeit zyklisch sendet.

Ohne do always, wird erst wieder der Befehl ausgeführt, wenn die Bedingung zwischendurch nicht wahr war, dann gibt es hier einen Zustandswechsel zu cmd_2 und das Modul ist "scharfgestellt" für eine erneute Ausführung.
 

Gruß

Damian
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 09:44:49
Hi,

ok. Gut das wir noch mal drüber gesprochen haben. Hatte mich wieder ganz durcheinander gebracht :) Ich hätte es nämlich ohne gemacht.
Aber Value 0 und Value 0 stimmt trotzdem nicht, oder ?

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: l2r am 25 Oktober 2016, 10:20:27
Zitat von: Damian am 25 Oktober 2016, 09:39:14
Das stimmt nicht. do always ist hier nicht sinnvoll, weil Helligkeit zyklisch sendet.

Ohne do always, wird erst wieder der Befehl ausgeführt, wenn die Bedingung zwischendurch nicht wahr war, dann gibt es hier einen Zustandswechsel zu cmd_2 und das Modul ist "scharfgestellt" für eine erneute Ausführung.
 

Gruß

Damian

cmd_2 gibt's doch gar nicht, da ich das doelse weggelassen habe?! Deshalb habe ich ja value>0 eingebaut, damit der nur dann set value 0 ausführt, wenn die Rolladen unten sind (also nicht value 0 haben).
oder ich bin grade nicht auf dem aktuellen Stand was DOIF angeht...
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 12:56:36
@l2r
ok. Stimmt. Jetzt hab ich es auch verstanden warum 0 und 0 da steht. 0 ist ja = offen, 100 = geschlossen.

ok. Also braucht man dann doch dein attr ?

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: l2r am 25 Oktober 2016, 13:07:30
der Meinung bin/war ich zumindest.

Da Damian aber den Entwickler von DOIF ist, will ich mich da nicht zu weit aus dem Fenster lehnen... ;)
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 13:33:55
Hi,

oh ja stimmt. Sehe ich auch gerade.

Na ich würde sagen, ich probiere es heute Abend mal aus. Morgen früh werden wir es sehen.

Bzw. irgendwo hatte ich gelesen das man dann das Ereigniss ja auch irgendwie simulieren kann. Also so tun als ob schon Helligkeit einen bestimmten Wert erreicht hat ?
Muss ich noch mal suchen. Dann kann ich es auch schon vorher testen. Wobei live ist immer besser :)

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CBSnake am 25 Oktober 2016, 14:12:03
Hi,

zum simulieren, erstelle nen dummy, statt deinem helligkeitssensor, den dummy ins doif, und den dummy auf die wunschwerte setzen. Ich hab z.b. nen dummy_test und ein doif _ test um neue Sachen zu probieren ohne das gleich was ausgelöst wird, was die Familie iritiert ;-)
Grüße
Achim

Gesendet von meinem SM-P605 mit Tapatalk

Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: Damian am 25 Oktober 2016, 17:08:32
Zitat von: l2r am 25 Oktober 2016, 10:20:27
cmd_2 gibt's doch gar nicht, da ich das doelse weggelassen habe?! Deshalb habe ich ja value>0 eingebaut, damit der nur dann set value 0 ausführt, wenn die Rolladen unten sind (also nicht value 0 haben).
oder ich bin grade nicht auf dem aktuellen Stand was DOIF angeht...

ohne do always gibt es einen imaginären DOELSE-Fall. D. h.

DOIF (...)(set ...) ist das Gleiche wie DOIF (...)(set ...) DOELSE

Wenn die Bedingung nicht wahr ist, gibt es den cmd_2-Zustand, ob man möchte oder nicht. Das ist auch wichtig damit ein Zustandswechsel hervorgerufen wird und die ganzen Beispiele in der Commandref ohne do always auch sinnvoll funktionieren.

Wenn do always gesetzt wird, gibt des dagegen den cmd_2-Zustand nicht, wenn kein DOELSE angegeben ist.

Das ist auch so in der Commandref beschrieben und hat eine bestimmte Vorgeschichte, die aber hier nicht wichtig ist.

Gruß

Damian
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 17:52:09
Hi,

ok. Danke für deine Antwort. Dann lasse ich das Always erst mal weg. Bin gerade heim gekommen und werde nun mal weiter an den Fall gehen :)

Danke schon mal an alle für die tolle Unterstützung.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 19:58:44
Hi,

kann es sein das dieser Code hier falsch war ?

define rolladen_morgens DOIF ([wetterstation_helligkeit] > 5 and [rolladen:value]>0 ) (set rolladen value 0)

Ich hab das zuerst so gemacht:

define rolladen_morgens DOIF ([wetterstation_helligkeit] > 5 and [rollo_lounge:value]>0 ) (set rollo_lounge value 0 g1)

Das funktionierte nicht. Irgendwas war falsch mit [rollo_lounge:value]

Ich hab es nun so gemacht:

define rolladen_morgens DOIF ([wetterstation_helligkeit] > 5 and [rollo_lounge]>0 ) (set rollo_lounge value 0 g1)

Dann hab ich mir einen Dummy gemacht und anstatt wetterstation_helligkeit den Dummy eingesetzt. Den Dummy hab ich dann einfach mal auf 7 gesetzt und schon ist mein Rolladen hochgefahren. Damit scheint es also zu klappen.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: CoolTux am 25 Oktober 2016, 20:03:41
Dann gibt es das Reading value für das Device rollo_lounge wohl nicht.
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 25 Oktober 2016, 20:48:53
Jungs tut mir leid, ich muss euch noch mal nerven.
Also für mein Rolladen hab ich das ja nun wie oben beschrieben hinbekommen. Scheint auch zu klappen.

@CoolTux:
Doch schau mal das Reading value gibt es:


Internals:
   DEF        2/3/4:dpt5.001 2/1/4:dpt1.008 2/2/4:dpt1.008 2/3/104:dpt5.001
   DEVNAME    rollo_lounge
   IODev      KNX
   KNX_MSGCNT 8
   KNX_RAWMSG C1107w236800
   KNX_TIME   2016-10-25 20:01:48
   LASTInputDev KNX
   MSGCNT     8
   NAME       rollo_lounge
   NR         340
   NTFY_ORDER 50-rollo_lounge
   STATE      0 %
   TYPE       KNX
   Gaddr:
     1          2/3/4
     2          2/1/4
     3          2/2/4
     4          2/3/104
   Gcode:
     1          2304
     2          2104
     3          2204
     4          2368
   Model:
     1          dpt5.001
     2          dpt1.008
     3          dpt1.008
     4          dpt5.001
   Readings:
     2016-10-25 19:07:05   getG2           up
     2016-10-25 19:07:05   getG3           up
     2016-10-25 20:01:48   getG4           0 %
     2016-10-25 20:01:48   last-sender     1/1/7
     2016-10-25 20:01:26   setG1           0 %
     2016-10-25 20:00:32   setG2           down
     2016-10-25 19:46:41   setG3           down
     2016-10-25 19:47:56   setG4           50 %
     2016-10-25 20:01:48   state           0 %
     2016-10-25 19:36:35   value           0
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g2:Ab/on g3:Stop/value 0% g2:Auf/value 30% g1:Pos1/value 50% g1:Pos2
   room       Lounge
   webCmd     Ab:Stop:Auf:Pos1:Pos2


Nun wollte ich das 1:1 auf meine Raffstores kopieren.
Ich habe vorher eine Gruppe meiner 3 Fenster mit den Raffstores gebildet.

Das ganze sieht so aus:


Internals:
   ATTR       room
   DEF        room rollo_kueche rollo_essen_alle rollo_tv
   NAME       raffstores_alle
   NR         417
   NTFY_ORDER 50-raffstores_alle
   STATE      Ab
   TYPE       structure
   Content:
     rollo_essen_alle undefined
     rollo_kueche 100 %
     rollo_tv   100 %
   Readings:
     2016-10-25 20:23:28   LastDevice      rollo_essen_alle
     2016-10-25 20:23:28   LastDevice_Abs  rollo_essen_links
     2016-10-25 20:26:03   state           value 100% g2
Attributes:
   eventMap   /value 100% g2:Ab/on g3:Stop/value 0% g2:Auf/value 25% g4:Pos1/value 50% g4:Pos2/value 75% g4:Pos3
   room       Gruppen
   webCmd     Ab:Stop:Auf:Pos1:Pos2:Pos3


Mich wundert schon mal, warum es hier kein Reading Value gibt. Es gibt nur das Reading State. Alle Angaben sind eigentlich so eingetragen wie auch bei meinen Rolladen. Total komisch.

Das Problem ist das bei dem Reading "state" mal 100% steht und mal "value 100% g2". Wenn nur sauber 100% drin steht, dann funktioniert es hiermit sofort:

define raffstores_morgens DOIF ([wetterstation_helligkeit] > 10 and [raffstores_alle]>0 ) (set raffstores_alle value 25 g4)

So sieht mein List für das DOIF aus:


Internals:
   CFGFN
   DEF        ([dummy_test] > 10 and [raffstores_alle]>0 ) (set raffstores_alle value 25 g4)
   NAME       raffstores_morgens
   NR         1619
   NTFY_ORDER 50-raffstores_morgens
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-10-25 20:43:59   Device          raffstores_alle
     2016-10-25 20:41:09   cmd             2
     2016-10-25 20:41:09   cmd_event       dummy_test
     2016-10-25 20:41:09   cmd_nr          2
     2016-10-25 20:43:21   e_dummy_test_STATE 30
     2016-10-25 20:43:59   e_raffstores_alle_STATE Ab
     2016-10-25 20:41:09   state           cmd_2
   Condition:
     0          InternalDoIf($hash,'dummy_test','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) > 10 and InternalDoIf($hash,'raffstores_alle','STATE','','',AttrVal($hash->{NAME},'notexist',undef))>0
   Devices:
     0           dummy_test raffstores_alle
     all         dummy_test raffstores_alle
   Do:
     0:
       0          set raffstores_alle value 25 g4
     1:
   Helper:
     event      Ab
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   raffstores_alle
     timerevent Ab
     triggerDev raffstores_alle
     timerevents:
       Ab
     timereventsState:
       state: value 100% g2
     triggerEvents:
       Ab
     triggerEventsState:
       state: value 100% g2
   Internals:
     0           dummy_test:STATE raffstores_alle:STATE
     all         dummy_test:STATE raffstores_alle:STATE
   Itimer:
   Readings:
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   room       Gruppen


Sorry das ich euch hier so zuspamme, aber ich komme leider nicht weiter. Kann mir jemand auf die Sprünge helfen ?
Wo ist da der Wurm drin.

Grüße,
Visionsurfer


Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 26 Oktober 2016, 10:30:37
Moin,

also mein Rolladen hat heute morgen wunderbar automatisch geöffnet, als es draußen hell wurde. Läuft perfekt wie gewünscht.

Nur die Raffstores bekomme ich nicht hin, weil die irgendwie komische Werte zurück geben, wo ich nicht weiß wie ich das abbilden kann. Außerdem glaube ich festgestellt zu haben, das die mal "ab", mal "value 100% g2" und mal "100%" als state schreiben.

Wenn ich z.B. alle Raffstores runterfahre und dann danach noch mal auf "stop" drücke, steht einfach nur "stop" da. Ich hatte gehofft das dann noch kurzer Zeit der Wert wieder auf 100% springt. Tut es aber nicht.
Man soll es ja mit stateRegex eventuell beeinflussen können. Aber das attr hab ich nicht verstanden, obwohl ich mir die Wiki schon 3 mal durchgelesen habe.

Keine Ahnung wie man dann dort auch "stop" wieder 100% machen kann.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: Prof. Dr. Peter Henning am 26 Oktober 2016, 10:48:27
Ich empfehle dringend, das nicht mit einem FHEM-Skript zu machen - das wird auf Dauer viel zu kompliziert und ist nicht wartbar.

Bei mir machen das verschiedene Perl-Programme:
- Für Spracherkennung
- Für die Überprüfung von Fenstern und Türen
- Für die Sprachausgabe
- Für die Feststellung des Tagesstatus morgen (Arbeitstag, Feiertag, Wochenende, Ferientag) und Einstellung der Default-Weckzeit

Diese interagieren mit einem zentralen "Housemaster".

Nur mal ein Use-Case: Wird nach 21:30 das Licht im Wohnzimmer komplett ausgeschaltet, wird die morgige Weckzeit angesagt und man wird daran erinnert, das Teewasser aufzusetzen (das dann natürlich morgens fünf Minuten nach dem Weckzeitpunkt zum Kochen kommt). Will man die Weckzeit ändern, geht dies per Sprachbefehl am wandhängenden Tablet. Ach ja, und es wird abends dann beim Ausschalten des Lichtes die Zirkulationspumpe noch für 10 Minuten angeschaltet, so dass auf jeden Fall sofort heißes Wasser an allen Zapfstellen da ist.

LG

pah
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 26 Oktober 2016, 11:01:08
Hi Pah,

ok. Leuchtet mir grundsätzlich ein.

Das Problem ist nur, ich hab erst mal keine Ahnung von Perl und weiß auch noch nicht wie ich das zentral machen kann. Also so wie von dir beschrieben.

Auf der anderen Seite, möchte ich natürlich erst mal sehen, was geht und wie das so grundsätzlich funktioniert. Kennst du vielleicht, ich freu mich dann immer wie ein Schneekönig, wenn quasi morgens dann die Jalousien hoch fahren.

Als Anfänger, bleibt einem fast gar nichts anderes übrig, als so erst mal zu starten.

Eigentlich funktioniert es ja auch perfekt. Wenn als Wert sauber 100% oder halt 0% im status steht, klappt es auch mit den Raffstores sofort. Hab ich mit einem dummy getestet. Ich hab halt noch nicht rausbekommen, warum ich immer mal wieder unterschiedliche Werte da stehen habe. Entweder ist mein KNX Bus nicht schnell genug oder ich habe die einzelnen Fenster, die ich ja als Gruppe gebildet habe, falsch angelegt oder oder oder ? Da bin ich noch nicht dahinter gekommen und suche jetzt erst mal einen Weg, damit das funktioniert.

Wenn ich mal so ein paar Sachen am laufen habe, wollte ich in Phase zwei, mich mehr damit beschäftigen, wie ich das alles zentraler und besser pflegbarer programmieren kann.

Eventuell ist das nicht gerade der beste Weg, wenn ich mich damit zuerst beschäftigt, dann sehe ich erst mal noch eine Weile nie ein Ergebnis und das ist schlecht fürs ego :)

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: l2r am 26 Oktober 2016, 14:15:03
@visionsurfer:

so ähnlich habe ich das auch gemacht als Anfänger und würde es auch zum erlernen von FHEM immer wieder so machen. Es ist natürlich nicht der effizienteste und sauberste Weg, das ist klar. Und ich habe auch nicht nur einmal meine komplette oder große Teile meiner Config neu gemacht, weil ich wieder einen Weg gefunden habe Probleme eleganter und zentraler zu lösen. Am Ende kommt man dann auf ähnliche Ergebnisse wie von pah.

Außerdem entwickelt sich FHEM ja auch mit rasanter Geschwindigkeit weiter, sodass es irgendwann sowieso zu besseren Lösungen kommt, als zu der, die es momentan gibt und man dann (sofern man es natürlich möchte) sowieso seine Config wieder umbaut. Gerade da steckt für mich ja auch der Reiz von FHEM, dass es ein dauerhaftes Projekt ist, wo es quasi jeden Tag etwas neues zu entdecken gibt.

Zu deinem Problem:
lies die nochmal die CommandRef von structure durchhttp://fhem.de/commandref_DE.html#structure (http://fhem.de/commandref_DE.html#structure)

ich nutze keine structure, aber probier mal bei den Mitgliedern der structure das attribut <struct_type>_map auf vlaue zu setzen. Dann sollte deine Structure nur noch die Werte von Value anstatt die states der einzelnen Mitglieder verwenden:
attr rollo_kueche raffstores_alle_map value


Gruß Michael
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 26 Oktober 2016, 14:25:24
Hallo Michael,

ok. Danke für deinen Hinweis. Schau ich mir an.

Was mich nur wundert, hier mal ein Beispiel von einem Raffstore. Dort hab ich gar kein Value Wert. Es gibt keinen Eintrag Value:


Internals:
   DEF        2/3/8:dpt5.001 2/1/8:dpt1.008 2/2/8:dpt1.008 2/4/8:dpt5.001 2/3/108:dpt5.001
   DEVNAME    rollo_tv
   IODev      KNX
   KNX_MSGCNT 6
   KNX_RAWMSG C1107w236cff
   KNX_TIME   2016-10-25 20:49:54
   LASTInputDev KNX
   MSGCNT     6
   NAME       rollo_tv
   NR         341
   NTFY_ORDER 50-rollo_tv
   STATE      down
   TYPE       KNX
   Gaddr:
     1          2/3/8
     2          2/1/8
     3          2/2/8
     4          2/4/8
     5          2/3/108
   Gcode:
     1          2308
     2          2108
     3          2208
     4          2408
     5          236c
   Model:
     1          dpt5.001
     2          dpt1.008
     3          dpt1.008
     4          dpt5.001
     5          dpt5.001
   Readings:
     2016-10-25 19:07:05   getG3           up
     2016-10-25 20:49:54   getG5           100 %
     2016-10-25 20:49:54   last-sender     1/1/7
     2016-10-25 20:50:59   setG2           down
     2016-10-25 21:38:10   setG3           down
     2016-10-25 20:50:23   setG4           25 %
     2016-10-25 21:38:10   state           down
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g2:Ab/on g3:Stop/value 0% g2:Auf/value 25% g4:Pos1/value 50% g4:Pos2/value 75% g4:Pos3
   room       TV
   userattr   room_map structexclude
   webCmd     Ab:Stop:Auf:Pos1:Pos2:Pos3


Oder verstehe ich da was falsch. In anderen Geräten sehe ich auch ein "Value". Das steht z.B. auf 0 oder auf was auch immer. Aber in dem hier beschriebenen Beispiel, hab ich das nicht.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: l2r am 26 Oktober 2016, 14:36:57
ahh ok, jetzt hab ichs verstanden ;-)

also musst du dir über ein userreading für vlaue den Passenden Wert für value zusammenbauen und kannst den dann verwenden.

Ich habe KNX-Devices nicht im Einsatzt. gibt es ein Reading das eindeutig die Position bestimmt? Weil so wie ich das im Moment sehe nimmt state nur den Wert des letzten Befehls an, was erklären würde warum du immer unterschiedliche Werte bekommst?!

Gruß Michael
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 26 Oktober 2016, 15:13:12
Hi,

ja genau.

Ich muss wahrscheinlich erst mal meine KNX Rolläden so einstellen das immer die richtigen Werte angezeigt werden. Im KNX Bereich hab ich diesbezüglich schon ein Thread gestartet. Da hab ich auch schon eine Info bekommen.

Wie du sagst, es stehen halt immer unterschiedliche Werte drin. Wenn ich z.B. beim hoch und runter fahren, zwischendurch auf STOP klicke, ist halt der letzte Wert "stop". Damit kann ich nichts anfangen. Ich muss das System erst mal so überzeugen, das er z.B. anstatt stop dann einfach die Position in % anzeigt, also z.B. 30%. Wenn ich das irgendwie einheitlich hinbekomme, müsse auch alles andere funktionieren.

Hoffe ich zumindest.

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 26 Oktober 2016, 18:23:39
Hi,

so ich bin der Sache zu Hause noch mal auf den Grund gegangen und eventuell eine Problematik festgestellt.

Mein KNX Device rollo_tv, besteht ja auch verschiedenen Gruppenadressen. Also für auf und ab, stop, position in %, status in % und aber auch der Position der Lamellen.

Hier liegt eventuell das Problem. Ich will ja nicht das ganze Rollo öffnen, sondern nur die Lamellen kippen. Also in meinem Fall G4 in eine Position bringen.

Bei einem normalen Rollo geht ja nur hoch, runter, stop. Bei meinem Raffstore geht aber hoch, runter, stop und Lamellen Kippen.

Im State kann ja eigentlich immer nur ein Wert stehen. Entweder die Position vom Rolladen allgemein oder halt die Position der Lamellen.

Wenn ich z.B. folgendes ausführe:

set rollo_tv value 50 g4

Dann werden die Lamellen gedreht. Im State steht dann mal nur "50%" und manchmal auch "value 50% g4".

Als Anlage mal ein Bild zum verdeutlichen.

Grüße,
Visionsurfer







Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: l2r am 26 Oktober 2016, 18:29:15
hast du bei deinen einzelnen raffstorres ein reading für g4 welches den aktuellen zustand von g4 anzeigt?


bzw wenn ich dich richtig verstanden habe, dann brauchst du nicht g4 sonder g3 für den gesamtstatus?!?
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 26 Oktober 2016, 19:43:28
Hi,

ich habe das noch mal Schritt für Schritt umgebaut und wirklich alle meine KNX Werte eingetragen die ich pro Fenster habe und erhalte.
Das sieht nun so aus:


Internals:
   DEF        2/3/107:dpt5.001 2/4/107:dpt5.001 2/3/7:dpt5.001 2/4/7:dpt5.001 2/1/7:dpt1.008 2/2/7:dpt1.008
   DEVNAME    rollo_essen_links
   IODev      KNX
   KNX_MSGCNT 14
   KNX_RAWMSG C1107w246bff
   KNX_TIME   2016-10-26 19:31:28
   LASTInputDev KNX
   MSGCNT     14
   NAME       rollo_essen_links
   NR         313
   NTFY_ORDER 50-rollo_essen_links
   STATE      25 %
   TYPE       KNX
   Gaddr:
     1          2/3/107
     2          2/4/107
     3          2/3/7
     4          2/4/7
     5          2/1/7
     6          2/2/7
   Gcode:
     1          236b
     2          246b
     3          2307
     4          2407
     5          2107
     6          2207
   Model:
     1          dpt5.001
     2          dpt5.001
     3          dpt5.001
     4          dpt5.001
     5          dpt1.008
     6          dpt1.008
   Readings:
     2016-10-26 19:29:12   getG1           100 %
     2016-10-26 19:31:28   getG2           100 %
     2016-10-26 18:45:58   getG5           100 %
     2016-10-26 19:31:28   last-sender     1/1/7
     2016-10-25 19:07:05   setG1           98 %
     2016-10-26 18:45:00   setG2           down
     2016-10-26 18:44:38   setG3           down
     2016-10-26 19:29:44   setG4           25 %
     2016-10-26 19:30:30   setG5           down
     2016-10-26 19:27:57   setG6           down
     2016-10-26 19:16:23   state           25 %
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g5:Ab/on g6:Stop/value 0% g5:Auf/value 25% g4:Pos1/value 50% g4:Pos2/value 75% g4:Pos3
   room       Essen
   stateCmd   {sprintf("%s %s", ReadingsVal($name,"g1-get","")), ReadingsVal($name,"g2-get",""))}
   userattr   room_map structexclude
   webCmd     Ab:Stop:Auf:Pos1:Pos2:Pos3


Durch eine Unterstützung von einem anderen User, hab ich in den Readings nun immer getG1 und getG2 stehen. G1 ist der Positionsstatus vom gesamten Rolladen und G2 ist der Positionsstatus von den Lamellen. In dem Beispiel hier, ist bei mir gerade alles dicht. Rolladen zu und Lamellen auch.

Das steht jetzt immer in den Readings. Damit müsste man dann was anfangen können, oder ? Weil diese beiden Readings kann ich ja dann immer anfragen und erhalte somit einen sauberen Wert wie gerade die Situation vom meinem Fenster ist.

Was mich nur stutzig macht ist der STATE. Da steht halt immer irgendein letzter Wert drin. Grundsätzlich bekomme ich da ja wahrscheinlich auch nicht 2 Werte rein.

Ich hoffe das ich jetzt verständlich erklärt habe. Kann man damit was anfangen, schon, oder ?

Grüße,
Visionsurfer
Titel: Antw:Morgendliche Routine automatisieren - Eure Meinung ?
Beitrag von: visionsurfer am 27 Oktober 2016, 09:31:36
Moin,

ich habe das nun noch mal heute früh angeschaut. In den Readings habe ich nun immer getG1 und getG2 drin. Also kann ich ja sicherlich diese Readings dann auslesen und mir auch für die Raffstores eine Morgenroutine bauen.

Nach dem Motto: Wenn getG1 = 100% und getG2 = 100%, dann set value 50 GXY.

So müsste ein Schuh draus werden ? :)

Grüße,
Visionsurfer