Neues Modul: 22_HOMEMODE.pm - grundlegende Automationen und mehr

Begonnen von DeeSPe, 07 Januar 2017, 15:59:43

Vorheriges Thema - Nächstes Thema

UweUwe

Hallo,
mit dem Wetter bin ich weitergekommen, es funktioniert jetzt auch mit dem neuen "Weather", indem man nur den neuen devicenamen des Weather einsetzt. Danke. Prima.

Mit meinen TÜR-Sensoren hab ich so meine Themen: Ich habe, historisch bedingt, sowohl Homematic, als auch FHT Türkontakte.
Die Homematic Türkontakte habe ich mit dem Attribut model=HM-SEC-SC(o|-2) erfasst und werden dargestellt.
Fie fht Kontakte dachte ich mit model=HM-SEC-SC(o|-2),Type=FHT einfach hinzufügen zu können. Leider erfolglos. Liegt dies am Open|Closed (FHT) und open|closed (Homematic) reading? Muss ich da die HomeValues setzten also
attr Home Homevalues open|tilted|closed? Merci. Hänge noch ganz am Anfang. Ist aber spannend

DeeSPe

Zitat von: UweUwe am 09 Februar 2019, 15:29:52
Hallo,
mit dem Wetter bin ich weitergekommen, es funktioniert jetzt auch mit dem neuen "Weather", indem man nur den neuen devicenamen des Weather einsetzt. Danke. Prima.

Mit meinen TÜR-Sensoren hab ich so meine Themen: Ich habe, historisch bedingt, sowohl Homematic, als auch FHT Türkontakte.
Die Homematic Türkontakte habe ich mit dem Attribut model=HM-SEC-SC(o|-2) erfasst und werden dargestellt.
Fie fht Kontakte dachte ich mit model=HM-SEC-SC(o|-2),Type=FHT einfach hinzufügen zu können. Leider erfolglos. Liegt dies am Open|Closed (FHT) und open|closed (Homematic) reading? Muss ich da die HomeValues setzten also
attr Home Homevalues open|tilted|closed? Merci. Hänge noch ganz am Anfang. Ist aber spannend

Die Syntax ist falsch, probiere mal bitte:
model=HM-SEC-SC(o|-2),TYPE=FHT

Im HOMEMODE Device kannst Du die möglichen Werte (open, tilted und tamper) für die Kontaktsensoren im Attribut HomeSensorsContactValues vorgeben. Dort würde ich die Werte vorgeben die auf die Mehrheit Deiner Kontaktsensoren zutrifft.
Sollten Kontaktsensoren zu HOMEMODE hinzugefügt worden sein, deren Werte von denen in HomeSensorsContactValues abweichen, dann kannst Du die entsprechenden Werte im jeweiligen Kontaktsensor mit dem Attribut HomeValues einstellen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

UweUwe

Hallo Dan, hab weiter mit dem Modul gearbeitet und deine Hinweise versucht. "Türen sind nicht meine Stärke". (FHT war nicht ok, die Türen heissen TYPE=CUL_FHTTK. Habe 3 Versuche attr HomesensorContact model=HM-SEC-SC(o|-2)liefert die Homematic Türsensoren (korrekt). TYPE=CUL_FHTTK liefert die FHTTK Türsensoren (korrekt). Aber TYPE=CUL_FHTTK,  model=HM-SEC-SC(o|-2) liefert nur die CUL-FHTTK Türensensoren und unterschlägt die Homematic Türsensoren. Habe die Reihenfolge auch umgedreht, also model=HM-SEC-SC(o|-2), TYPE=CUL_FHTTK gleiches Ergebnis, nur die TYPE=CUL_FHTTK Kontakte. Das attr HomeSensorsContactValues steht auf   open|Open   Das sind auch alle readings meiner Türen. Was mache ich falsch?
Ich möchte dies richtig verstehen, bevor ich die restlichen attr einrichte.
Beim Wetter gibt es auch noch eine Schwierigkeit. Ich habe als Wetterdevice das neue "WEATHER". HomeYahooWeatherDevice W.Sim. Meinen Aussentermometer habe ich auf HomeSensorTemperatureOutside G.Temp und die Humidity habe ich auch auf mein WEATHER-DEVICE: HomeSensorHumidityOutside W.Sim. In der Übersicht finde ich unter Temperatur meine Aussentemperatur (G.Temp) , korrekt. Unter Luftdruck finde ich den Wert vom WEATHER-device (W.Sim) korrekt. Aber unter Luftfeuchte finde ich 0%, obwohl das WEATHER device W.Sim ein reading humidity 88 hat.
Sorry für die vielen Fragen, ich hoffe, ich nerve nicht zu sehr.



DeeSPe

Hallo Uwe,

im devspec dürfen keine Leerzeichen sein, die hatte ich in meinem Beispiel auch nicht angegeben.

Als weiteren gut gemeinten Hinweis kann ich Dir noch mitgeben dass Deine Namensgebung mit Punkten sehr schlecht gewählt ist.
Zumindest früher gab es diesbezüglich öfter Probleme (evtl. ist das heute nicht mehr so) da der Punkt sowohl in Perl als auch in Javascript ein besonderes Zeichen ist.
Ich würde in der Benamung die Punkte gegen Unterstriche tauschen.

Bitte prüfe/ändere das erst einmal und dann können wir Deine weiteren Probleme angehen, sofern es dann noch Probleme sind.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

UweUwe

Hallo DeeSpe,


das Thema mit den Türen ist jetzt erstmal gelöst, das Weglassen der "Leerzeichen" brachte alle Türen zum Vorschein. Danke gelöst.model=HM-SEC-SC(o|-2),TYPE=CUL_FHTTK die Türen habe ich verschiedentlich verwendet und eine Umbenennung bringt mir potentiell Ärger, ich werd es aber angehen. Die umbenennung wird nicht überall automatisch anchgezogen.  Ich hatte bis vor einiger Zeit keine Punkte verwendet, das Umfeld "Alarm" und der Professor hat mich dazu verleitet. War wohl der falsche Weg.

Das Wetter W.Sim zu ändern sollte keine Schwierigkeit sein.
Mein Aussentermometer zickt etwas, sobald man ihn umbenennt. Er bringt nach der Umbennung dann keine  readings mehr. Die Lösung heisst Batterien raus, komplett löschen incl Filelog, Plots. Dann Batterien neu, autocreate, einmal umbennen ist ok. Nur wenn es nicht anderst geht. Da ich auch nicht vorort bin. Ich melde mich, sobald ich den "Wetter" Test gemacht habe. Wird wohl morgen sein. Danke erstmal.





UweUwe

Hallo,
das WEATHER device habe ich jetzt umbenannt nach W_SIM.
Da gibt es unendlich viele readings, aber auch das reading "humidity". Ich weiss nicht, warum HOMEMADE dieses nicht reading nicht, analog zum Luftdruck, verwwendet.
Ich hatte schon mal vermutet, dass HOMEMODE die humidity von meiner Aussentemperaturmesser nimmt.
Die schon in die Jahre gekommene WS 300 Hardware (Modul heisst G.Temp) liefert aktuell T:1.4 und H:0 (wobei dies eine reiner Temperaturmesser ist, der humidity Wert ist also Blödsinn) . Bisher hatte ich dieses device mit dem Namen G.Temp als HomeSensorTemperaturOutside verwendet. Nach dem entfernen von G.Temp war die von HOMEMODE angezeigte Temperatur weiterhin identisch mit der von G.Temp und die humidity ist 0 im G.Temp und in HOMEMODE. Für mich nicht nachvollziehbare Werte. Woher nimmt sich HOMEMODE diese Werte, wenn nicht von G.Temp.

Die Luftfeuchte nimmt HOMEMADE definitiv aus dem WEATHER device W_SIM, das ich unterHomeYahooWeatherDevice W_Sim definiert habe. Sonst sehe ich nirgends diesen speziellen xxxx PA Wert.
Merci für eure Bemühungen.





Das

dk3572

Hallo,

bei dieser Meldung

HomeCMDcontactOpenWarningLast

habe ich folgendet eingetragen

msg push \@%RESIDENT% Info. %ALIAS% ist noch offen.

und erhalte diese Meldung

\@rr_Dieter Info. das Schlafzimmerfenster ist noch offen.

Ist das vorangestellte "\@rr_Dieter" normal oder habe ich irgendwo ws falsch eingetragen?

Danke für Hilfe und VG Dieter

DeeSPe

Zitat von: dk3572 am 16 Februar 2019, 16:31:22
Hallo,

bei dieser Meldung

HomeCMDcontactOpenWarningLast

habe ich folgendet eingetragen

msg push \@%RESIDENT% Info. %ALIAS% ist noch offen.

und erhalte diese Meldung

\@rr_Dieter Info. das Schlafzimmerfenster ist noch offen.

Ist das vorangestellte "\@rr_Dieter" normal oder habe ich irgendwo ws falsch eingetragen?

Danke für Hilfe und VG Dieter

Wenn Du es nicht in Perl schreibst, dann musst Du das @-Zeichen nicht escapen.
Also sollte folgendes reichen:
Zitatmsg push @%RESIDENT% Info. %ALIAS% ist noch offen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Zitat von: UweUwe am 13 Februar 2019, 20:53:24
Hallo,
das WEATHER device habe ich jetzt umbenannt nach W_SIM.
Da gibt es unendlich viele readings, aber auch das reading "humidity". Ich weiss nicht, warum HOMEMADE dieses nicht reading nicht, analog zum Luftdruck, verwwendet.
Ich hatte schon mal vermutet, dass HOMEMODE die humidity von meiner Aussentemperaturmesser nimmt.
Die schon in die Jahre gekommene WS 300 Hardware (Modul heisst G.Temp) liefert aktuell T:1.4 und H:0 (wobei dies eine reiner Temperaturmesser ist, der humidity Wert ist also Blödsinn) . Bisher hatte ich dieses device mit dem Namen G.Temp als HomeSensorTemperaturOutside verwendet. Nach dem entfernen von G.Temp war die von HOMEMODE angezeigte Temperatur weiterhin identisch mit der von G.Temp und die humidity ist 0 im G.Temp und in HOMEMODE. Für mich nicht nachvollziehbare Werte. Woher nimmt sich HOMEMODE diese Werte, wenn nicht von G.Temp.

Die Luftfeuchte nimmt HOMEMADE definitiv aus dem WEATHER device W_SIM, das ich unterHomeYahooWeatherDevice W_Sim definiert habe. Sonst sehe ich nirgends diesen speziellen xxxx PA Wert.
Merci für eure Bemühungen.





Das

HOMEMODE nimmt alle Wetterwerte aus dem im Attribut "HomeYahooWeatherDevice" hinterlegtem Device.
Ist zusätzlich noch "HomeSensorTemperatureOutside" angegeben, dann wird dieses für die Temperatur verwendet, wenn dieses Device auch ein "humidity" Reading hat, so wird dieses auch verwendet.
Wenn "HomeSensorTemperatureOutside" und "HomeSensorHumidityOutside" das selbe Device sind, so muss es nur bei "HomeSensorTemperatureOutside" hinterlegt werden.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

patlabor

Hallo zusammen,

bin mittlerer weile etwas weiter gekommen mit diesem Tollen Modul, leider habe ich aber mal wieder ein kleineres Problem.
Ich habe mir ein paar Kontaktsensoren von Xiaomi zugelegt und diese erfolgreich mit zigbee2mqtt in fhem eingebunden.
Ich habe jetzt meine Fenster mit Max Fensterkontakten versehen und die Türen mit Xiaomi Modulen.
Genannt habe ich sie fk_irgendwas bzw tk_irgendwas, für (f)enster bzw (t)ür Kontakt.
im Homemode habe ich als HomeSensorsContact ^[ft]k_.* angelegt.
Gefunden werden auch alle Kontakte, zuminset lt. Sensorcontact reading.
Wärend mit den Fenstern auch alles Funktioniert, passiert leider bei den Türkontakten nichts. Egal ob geöffnet oder geschlossen Homemode zeigt nichts an.
HomeSensorsContactValues
habe ich auf open|tilted|on|false erweitert, da die Xiaomi Kontakte true/false für offen/geschlossen melden.
Unter HomeSensorsContactReadings habe ich nicht hinterlegt, da weder die Max noch die Xiaomi Kontakte einen Sabotage Status haben und das Attribut scheinbar zwingend eines erwartet.

Was mir aufgefallen ist, ist das die Max Kontakte die im Wiki erwähnten userAttribute haben, die Xiaomi Kontakte jedoch nicht.[/code]

DeeSPe

Gib mal bitte ein list von einem der Xiaomi Kontakte.
Im Internal SENSORSCONTACT sind sie mit drin? Auch im Internal NOTIFYDEV?
Probier mal "set <HOMEMODE> updateInternalsForce" auszuführen ob dann die userattr vorhanden sind.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

patlabor

Hier mal das list :

Internals:
   CID        tk_toilette
   DEF        tk_toilette
   DEVICETOPIC tk_toilette
   IODev      mqtt2_server
   LASTInputDev mqtt2_server
   MSGCNT     53
   NAME       tk_toilette
   NR         129
   STATE      true
   TYPE       MQTT2_DEVICE
   mqtt2_server_MSGCNT 53
   mqtt2_server_TIME 2019-02-20 16:59:07
   READINGS:
     2019-02-17 09:28:55   associatedWith  MQTT2_zigbee
     2019-02-20 16:59:07   tk_toilette_battery 100
     2019-02-20 16:59:07   tk_toilette_contact true
     2019-02-20 16:59:07   tk_toilette_linkquality 36
     2019-02-20 16:59:07   tk_toilette_voltage 3025
Attributes:
   IODev      mqtt2_server
   alias      Toilette
   devStateIcon false:fts_door_open true:fts_door true:fts_door true:fts_door
   group      Türen
   icon       fts_door
   readingList zigbee2mqtt/tk_toilette:.* { json2nameValue($EVENT, 'tk_toilette_', $JSONMAP) }
   room       Flur,Toilette
   stateFormat {ReadingsVal("tk_toilette","tk_toilette_contact","sabotage")}


sowohl unter SENSORSCONTACT als auch unter NOTIFYDEV tauchen die Kontakte auf. Auch ein update Internals Force hat leider nichts gebracht.

DeeSPe

Das ist komisch und ich verstehe es nicht.  ::)

Kannst Du bitte testweise mal das Attribut "HomeSensorsContact" in HOMEMODE löschen und danach wieder neu setzen?
Sind nun die userattr in den Xiaomi Kontakten vorhanden?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

patlabor

Tatsächlich hat es nun funktioniert.
Scheinbar reicht es nicht aus das bestehende Attribut zu ändern damit die userattr erscheinen.
hatte vorher lediglich fk_.* als "HomeSensorsContact" definiert, damit wurden dann die Fensterkontakte erkannt.
Erst nachdem ich mir die Xiaomi Sensoren zugelegt habe, habe ich "HomeSensorsContact" entsprechend angepasst.
Das hat wohl gereicht damit die Kontakte unter"SENSORSCONTACT" auftauchen, aber die userattr wurden nicht angelegt.

UweUwe

Hi, würde mit gerne bei Abwesenheit aller Roommates ein "weather long" morgens per Telebot zuschicken lassen.
Abwesenheit funktioniert über Geofancy/Roommate funktionieren, Wetter ist installiert "W_HN", Roommates sehe ich ich Homemode.
HomeTextWeatherLong hab ich definiert, teleBot ist installiert und funktioniert.
Aber wie bekomme ich den Text aus weather long jetzt in den teleBot und wie bekomme ich den Trigger über die Anwesenheit.
Es soll kein Roommate im Haus sein, dann sollte das Verschicken nur stattfinden. 
Sorry für diese schon sehr aufwendige Unterstützung, eine Vorlage bringt mich für weitere Dinge hoffentlich alleine zum Ziel.
Merci.