FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: alanblack am 08 März 2017, 20:46:17

Titel: Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: alanblack am 08 März 2017, 20:46:17
Je mehr ich mich in FHEM reinarbeite, desto mehr verfluche ich meine Inkonsequenz, auch bei "Ich teste mal" vernünftig zu programmieren. Inzwischen habe ich die ersten Routinen meiner FHEM-Installation komplett überarbeitet. Egal!
Dabei stoße ich aber immer wieder auf eine Lücke in den FHEM-Modulen: Geräte für Licht, Heizen, Wasser, Wetter,... auch Personen, alles da. Aber wo sind die Räume? Ich habe mal spaßeshalber das Modul "dummy" in ein Modul "rooms" abgeleitet und ein paar Readings und Attribute definiert. Ansonsten ist das Ding noch dumm wie ein Meter Feldweg und wird nur durch eine Reihe von NOTIFYs belebt, die aber eigentlich als Logik in das Modul könnten.
Bevor ich das Modul selbst mit Logik fülle, habe ich nochmal die Commandref (in Englisch) durchgelesen und ein paar Suchanfragen hier im Forum abgesetzt. Vielleicht fehlt mir auch nur die Idee für die richtigen Suchbegriffe. Jedenfalls finde ich nix, was mich weiter bringt.

Falls sich einer fragt, was der Gedanke dahinter ist, stehe ich gerne Rede und Antwort. Ich will nur mit nicht einen langen Text langweilen, wenn die Lösung schon existiert und ich halt einfach zu blöd zum Suchen war.

Danke und Grüße
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: KernSani am 08 März 2017, 20:50:11
Mich würde der Gedanke dahinter interessieren. Ich komme mit dem Attribut room bisher ganz gut klar... was würde ein Modul machen?
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: Icinger am 08 März 2017, 21:01:40
Ich vermute, er will sowas wie das neue Homemode, nur eben runtergebrochen auf einzelne Zimmer.
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: alanblack am 08 März 2017, 21:51:09
Das Modul HOMEMODE hatte ich noch nicht gesehen. Ich habe gerade mal kurz drübergelesen. Hmmmm.... ein bißchen vielleicht.

Der Gedanke ist eher so etwas wie "set Wohnzimmer off" oder "notify ... Wohnzimmer:closed..." zu haben, ohne sich Gedanken machen zu müssen, ob da jetzt ein oder drei Fenster-Devices (davon 1x FS20 und 2x HM) oder auch noch zwei Türen (2x IT) sind, ob da in einem Raum die Steuerung aus gekoppelten FS20-Devices und im anderen aus einer Mischung aus HM und Enocean besteht.

Ich sollte vielleicht vorwegschicken, dass ich hier ein Objekt mit 26 Räumen habe, wo das NOTIFY mir perl-sub für die Warnmeldung an der Ausgangstür, dass noch ein Fenster offen steht, ziemlich lang ist.  :o

Angefangen haben die Überlegungen, als ich meine Schichtplan-Steuerung fertig hatte. Meine Frau und ich pflegen unsere Arbeitszeiten sowie die Pläne der Kids in eine Datenbank, aus der letzlich am späten Abend Heizpläne für den übernächsten Tag erstellt und für den nächsten kontrolliert bzw. korrigiert werden. Da die Arbeitszeiten von uns beiden ziemlich stark variieren, und wir und in unserer Tagesroutine teilweise stark unterscheiden, habe ich begonnen, nur noch die Räume zu steuern (s.o.) und die Pläne entsprechend der Vorlieben raumbasiert zu erstellen.
Beispiel?

Meine Frau braucht im Frühdienst nur kurz die Ankleide, ein Bad und die Küche, das aber schon warm.
Ich brauche bei vorgezogenem Arbeitsbeginn leicht geheizte Küche, Bad, Büro und Wohnzimmer.

Alleine dies ist ist schon in perl nur lang und unflexibel zu programmieren. Mit den Attributen der Räume (tMorning, tBeforeNoon, tDay, tAfternoon,...) und der Roommates (tComfortable über setreading) schon deutlich kürzer. Langfristig wird das mit Präsenzsensoren wahrscheinlich programmtechnisch ausarten.

Im Hinterkopf ist noch ein Modul "compartment" vorhanden, welches mehrere "rooms" zusammenfasst. Ob das Sinn macht (Mehrfamilienhaus, Stockwerke...), bin ich mir noch nicht schlüssig.

Grüße
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: marvin78 am 08 März 2017, 21:55:49
structure und devspec sind deine Stichwörter.
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: CoolTux am 08 März 2017, 21:56:25
Das Einsteiger PDF hast Du aber schon gelesen, oder? Du weißt wie Structure funktioniert?
Weißt das man auch ein

set room=Wohnzimmer off

machen kann?
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: marvin78 am 08 März 2017, 21:59:41
Sag ich doch  :)
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: alanblack am 08 März 2017, 22:14:35
Ja, structure habe ich gelesen.
Okay! Mein Wohnzimmer hat vier Fenster und eine Tür nach außen sowie zwei Türen zu anderen Räumen. Wo kann mir die Structure helfen, ob:
- alles zu ist?
- nach außen alles zu ist?
- welche Temperatur der Raum haben soll, wenn ein Fenster oder - je nachdem welche - eine Tür offen ist?
- welche Musik laufen soll, wenn Person X anwesen ist?

Nur das Wohnzimmer hat:
- sieben Tür-Fenster-Kontakte
- sechs Dimmer
- vier Ventil-Regler
- ein Raumthermostat
- vier Schalter
- drei "Fern-"bedienungen
gemischt aus drei Funk-Welten. Und wenn ich FS20 durch MAX oder einen Dimmer durch ein RGBW-LED-Stripe ersetze möchte ich nicht alles neu schreiben.

Grüße
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: CoolTux am 08 März 2017, 22:22:30
Ich habe pro Raum structuren für Licht und Fensterkontakte. Dann habe ich pro Etage die Structuren pro Raum Fensterkontakt und pro Raum Licht in die Etagenstruktur für Fensterkontakt und Licht gesteckt und das ganze in die Strukture Licht Haus und Fensterkontakte Haus.
Rolladen kann man das gleiche machen eventuell besser noch mit Himmelsrichtung.

Und so weiter. Bisschen Gedanken solltest Du Dir da schon machen.
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: alanblack am 08 März 2017, 22:29:58
Zitat
Jedes set Kommando wird an alle Devices dieser Struktur weitergegeben.
Get wird im Structur-Device nicht unterstützt.

Wie stelle ich fest, ob alle Fenster und Türen zu sind?

EDIT: pro Raum!!!
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: CoolTux am 08 März 2017, 22:32:35
Anhand des states. Zu mindest bei mir wird der state von alleine aktuallisiert. Sobald alle Fenster auf closed stehen ist die structure closed, ist nur eines opend ist die structure opend.
Am besten du probierst es einfach mal aus.
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: KernSani am 08 März 2017, 22:39:08
Eine durchdachte Gliederung in Structure hilft an vielen Stellen. ich habe z.B. - ähnlich wie von CoolTux beschrieben, Structures für Licht und für Rolläden. Mit den Structures kann ich Zimmer, Etagen oder Ost und West (bei Rolläden) schalten bzw. abfragen, in deinem Beispiel würde sich also z.B. Eine Structure für Tür_Fenster_Wohnzimmer_Aussen, eine Tür_Fenster_Wohnzimmer_Innen und beide zusammengefasst in Tür_Fenster_Wohnzimmer anbieten. Den Kontakt der Türe zwischen Küche und Wohnzimmer kannst du dann auch noch in die Structure Tür_Fenster_Küche_Innen packen.

Genauso kannst du mit den anderen Devicetypen vorgehen. Über clientstate_behavior legst du dann noch fest, dass Tür_Fenster_Wohnzimmer_Aussen den Status "offen" hat, wenn irgendein Kontakt offen ist,  Licht_Wohnzimmer aber nur den Status "on" hat, wenn alle Lichter an sind, etc...

Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: alanblack am 08 März 2017, 23:22:57
Ich habe gerade mal ganz platt alle Fenster-Devices des Hauses in eine structure getickert. Der state der structure ist.... undefined.
Liegt wahrscheinlich daran, dass hier die states "closed", "Closed", "Closed, Low Batt"... wild durcheinander gehen.
Also versuche ich (mal wieder) die clientstate_behaviour und clientstate_priority anzupassen.... undefined in allen Varianten!
Mag irgendwo irgendwann gehen, wenn ich jede structure manuell diesbezüglich optimiere.
....

Wenn ich das, was KernSani vorgeschlagen hat, weiter denke, komme ich vielleicht auf 150 structures vieleicht sogar mehr. Ist das sinnvoll? Ist das noch mit angemessenem Aufwand zu verwalten?
Da wäre ich mit 26 rooms-Devices etwas schlanker.

Internals:
   CFGFN      /opt/fhem/FHEM/0_81_rooms.cfg
   NAME       EG_Wohnzimmer_Status
   NR         778
   STATE      Normal
   TYPE       room
   Readings:
     2017-03-08 22:02:49   presentPersons  none
     2017-03-08 13:08:43   state           Normal
     2017-03-08 11:49:40   tBeforeOpenWindow 19.0
     2017-03-08 19:00:20   tBeforeOpendoor 18
Attributes:
   comment    Alles OK
   controlDevice EG_Wohnzimmer_Temp
   doorDevice EG_Wohnzimmer_EG_Flur EG_Wohnzimmer_EG_Buero EG_Wohnzimmer_EG_Kueche
   group      Steuerung
   heatingDevice EG_Wohnzimmer_Temp1 EG_Wohnzimmer_Temp2 EG_Wohnzimmer_Temp3 EG_Wohnzimmer_Temp4
   humidityDevice EG_Wohnzimmer_Temp
   icon       unknown
   room       EG_Wohnzimmer
   tBeforeNoon 19
   tAfternoon 20
   tDay       19.5
   tEvening   21
   tMorning   19
   tNight     17.5
   tWindowOpen 12
   temperatureDevice EG_Wohnzimmer_Temp
   ventilationDevice EG_Wohnzimmer_Vent1 EG_Wohnzimmer_Vent2
   windowDevice EG_Wohnzimmer_Fenster1 EG_Wohnzimmer_Fenster2 EG_Wohnzimmer_Fenster3 EG_Wohnzimmer_Fenster4 EG_Wohnzimmer_Terrasse

Ich glaube, ich sollte meine Idee mal in Code gießen und dann hier vorstellen. Ich melde mich.

Grüße
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: KernSani am 08 März 2017, 23:34:30
Zitat von: alanblack am 08 März 2017, 23:22:57
Liegt wahrscheinlich daran, dass hier die states "closed", "Closed", "Closed, Low Batt"... wild durcheinander gehen.
Da würde es sich vielleicht anbieten zunächst einmal alle states per eventmap zu vereinheitlichen (ich denke das hilft auch beim ROOMS Modul ;-)

Zitat
Wenn ich das, was KernSani vorgeschlagen hat, weiter denke, komme ich vielleicht auf 150 structures vieleicht sogar mehr. Ist das sinnvoll? Ist das noch mit angemessenem Aufwand zu verwalten?
Da wäre ich mit 26 rooms-Devices etwas schlanker.
Es bleibt ja nicht bei den 26 Rooms - du willst ja trotzdem noch wissen, ob irgendein Aussenfenster- oder Türkontakt offen ist, also baust du dir dafür wieder etwas (und wenn's ein notify ist, das 26 Rooms abfragt etc...)

Zitat
Ich glaube, ich sollte meine Idee mal in Code gießen und dann hier vorstellen. Ich melde mich.
Ich bin mal gespannt (und das meine ich ernst)
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: CoolTux am 09 März 2017, 06:12:41
26 Räume ist ja schon kein normaler Haushalt mehr. Da würde es mit jeder Automatisierungssoftware schon bei den einfachsten Dingen komplex aussehen.
Von daher mein Tip. Überlege ganz genau was Du machen möchtest. Was willst du wie und mit welchen Auslöser schalten. Schreibe es Dir auf. Wenn Du schon eine Vorstellung hast welche Szenarien sich bei Dir abspielen sollen Zeichen e Dir einen Flow oder Programmablaufplan. So behältst Du die Übersicht. Bei richtiger Gebäudeautomatisierung von großen Firmen wird das nicht anders gemacht.
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: Benni am 09 März 2017, 14:37:28
Zitat von: CoolTux am 09 März 2017, 06:12:41
26 Räume ist ja schon kein normaler Haushalt mehr

Da komme ich locker drüber
Aber was ist schon normal?   ;D

Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: CoolTux am 09 März 2017, 14:42:52
Habe ich was verpennt und sind wir jetzt hier ein Millionärsclub  ;D
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: Benni am 09 März 2017, 14:56:02
Zitat von: CoolTux am 09 März 2017, 14:42:52
Habe ich was verpennt und sind wir jetzt hier ein Millionärsclub  ;D

Das nicht, aber als Häuslesbesitzer hat man da schnell einiges zusammen.

Dann ist es vllt. auch noch Definitionssache, ob man Dachboden, Flur,Technikraum/-räume, Treppe (je nach Etage) auch als Raum anlegt. Weiterhin gibt es noch die Außenbereiche (Eingang, Balkon, Garten, Gartenhaus, (Doppel-)Garage ...).
Wie gesagt, es kommt schnell so einiges zusammen  8)
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: alanblack am 09 März 2017, 23:05:16
Wenigstens bin ich hier nicht alleine als Hausbesitzer.  ;)

Aber Benni hat vollkommen Recht, dass man bei einem Eigenheim mit Grundstück und einer halbwegs flexiblen Konfiguration hinsichtlich der Räume schnell bei derartigen Zahlen ankommt. Und Benni laut seiner Sig mit > 100 HM-Devices...

Ich habe nochmal ein wenig mit structure und eventmap probiert. Structure ist wirklich nur sinnvoll, wenn man eine homogene Infrastruktur hat. eventmap ist schräg, weil ich trotzdem immer noch bspw. im state per ReadingsVal den ursprünglichen Wert stehen habe und somit doch wieder daran denken muss, welcher Hersteller jetzt in welchem Raum als Raumthermostat, Feuchtigkeitsmesser oder Dimmer ist.

Ich, der von den Möglichkeiten von FS20, FHT und Homeputer begeistert war, als er feststellte, dass die Geräte nicht mehr produziert werden und die ersten "LOVFs" auftraten. Ich, der dann nach einer Lösung suchte, das vorhandene mit anderen Produktfamilien zu ergänzen und über FHEM stolperte. Aber ich merke jetzt, dass FHEM nur eine Hilfe ist und keine Lösung und suche nach einem Ansatz, dass es zu einer Lösung wird, weil alle anderen Alternativen schlechter sind.

Oder kann mir irgendwer pausibel machen, warum bspw ein FS20 FHTTK ein "Closed", ein HM-SEC-SCo aber ein "closed" meldet?
Eine Automatisierung sollte doch langfristig in weniger Aufwand resultieren und nicht in mehr. Mein Ziel ist, dass ich einen Teil oder auch alle Geräte durch einen anderen Hersteller ersetze und nur die "defines" neu machen muss. Denn wer garantiert mir, dass Homematic nicht in ein paar Jahren eingestampft wird?

Setze ich die Zeitpläne in meiner Familie um, ist es nötig, dass ich im Bad ein
set EG_Bad_Climate tempListThu 05:50 17 07:20 19 19:00 17 22:00 19.5 24:00 17
absetze, in der Küche aber ein
set EG_Kueche_Temp thu-from1 06:00 thu-to1 07:30 thu-from2 18:00 thu-to2 22:00
verwenden muss.
Ein Teil meines rooms-Moduls soll sein, dass ich hier mit den gleichen Befehlen agiere, egal, was dahinter für eine Hardware steht. Diese "Übersetzer"-Routinen wachsen derzeit ständig, werden aber wohl nie feature-complete für alle Gerätefamilien werden. Vor allem auch, weil mir die Zeit dazu sowie die Geräte zum Testen fehlen.

Jetzt mögen mich alle Developer von FHEM steinigen, trotzdem finde ich dieses Projekt Klasse und möchte es mit voran bringen .

Grüße
Titel: Antw:Zu blöd zu suchen? Oder fehlt ein "ROOMS"-Modul?
Beitrag von: Benni am 10 März 2017, 09:12:02
Zitat von: alanblack am 09 März 2017, 23:05:16
Ein Teil meines rooms-Moduls soll sein, dass ich hier mit den gleichen Befehlen agiere, egal, was dahinter für eine Hardware steht. Diese "Übersetzer"-Routinen wachsen derzeit ständig, werden aber wohl nie feature-complete für alle Gerätefamilien werden. Vor allem auch, weil mir die Zeit dazu sowie die Geräte zum Testen fehlen.

Jetzt mögen mich alle Developer von FHEM steinigen, trotzdem finde ich dieses Projekt Klasse und möchte es mit voran bringen .

Grüße

Das was du möchtest klingt aber erst mal nicht nach einem ROOMS-Modul sondern eher nach einer Art (herstellerunabhängigen) Geräteklassen, also quasi einer neutralen, standardisierten Zwischenschicht zwischen FHEM- und dem Hersteller-Device.
Zu so etwas gab es hier immer mal wieder schon Diskussionen und Ansätze. Auch ein wesentliches Problem dabei hast du schon genannt, das u.a. durch das stetige Wachstum des Gerätemarktes entsteht.