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

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

Vorheriges Thema - Nächstes Thema

Martin Fischer

Hallo Dan,

Zitat von: DeeSPe am 15 März 2017, 11:36:48
ich habe (hoffentlich) alle geforderten Informationen in der commandref ergänzt und den dev Branch aktualisiert.

bitte nicht falsch interpretiren! Ich fordere hier nichts; es ist eine Bitte  ;)

Ich betreibe hier keine Qualitätssicherung aus Sicht von FHEM, sondern überlege aus Sicht eines Anwenders was mir noch wichtig ist. Das sind Angaben, die mir fehlen um das Modul nutzen zu können. Es ist halt wichtig zu wissen, welche notify's, DOIFs, at's, etc. ggf. überflüssig sind.  ;)

Zitat von: DeeSPe am 15 März 2017, 11:36:48
Mit der nächsten master Version werden die Informationen zu daytime und season bekannt(er) gemacht und daytime wird auch konfigurierbar sein.
Bis dahin wird es sicher auch ein "delayed absent" mit passendem HomeCMD Attribut geben. ;)
Die gewünschten Änderungen zu modeAlarm werde ich bis dahin sicher noch nicht bringen können, denn dazu muss ich mir erst einmal eine Strategie ausdenken um kompatibel mit den bisherigen modeAlarm Settings zu bleiben.

Top! Gut Ding will Weile haben  ;D

Zitat von: DeeSPe am 15 März 2017, 11:36:48
Jede Erzeugung eines Readings erzeugt auch ein Event sofern es nicht durch die event-on-.... Attribute verändert wurde.
Soll ich die alle nochmal einzeln auflisten? Das wird eine ellenlange Liste... ???

Nein. Wenn klar ist, das jedes reading ein Event auslöst, dann ist das ja eine Erwähnung wert und muss nicht einzeln aufgeführt werden.

Viele Grüße
Martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

DeeSPe

Zitat von: Martin Fischer am 15 März 2017, 11:55:23
Hallo Dan,

bitte nicht falsch interpretiren! Ich fordere hier nichts; es ist eine Bitte  ;)

Habe ich nicht falsch interpretiert, bin doch über jeden Hinweis dankbar und ergänze möglicherweise bisher vergessene und wichtige Hinweise gerne.

Zitat von: Martin Fischer am 15 März 2017, 11:55:23
Ich betreibe hier keine Qualitätssicherung aus Sicht von FHEM, sondern überlege aus Sicht eines Anwenders was mir noch wichtig ist. Das sind Angaben, die mir fehlen um das Modul nutzen zu können. Es ist halt wichtig zu wissen, welche notify's, DOIFs, at's, etc. ggf. überflüssig sind.  ;)

Wunderbar! Das ist auch einer der Zwecke dieses Threads. ;)

Zitat von: Martin Fischer am 15 März 2017, 11:55:23
Nein. Wenn klar ist, das jedes reading ein Event auslöst, dann ist das ja eine Erwähnung wert und muss nicht einzeln aufgeführt werden.

Habe diese Information nun auch mit aufgenommen.

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

Martin Fischer

--
Admin, Developer, Gründungsmitglied des FHEM e.V.

C0mmanda

Moin,

habe da leider wieder mal eine Frage:

Ich habe den Beispielcode für "HomeCMDcontactDoormainClosed" mal getestet.
Scheinbar gibt es (bei mir) ein Problem mit der Variable %FEIERTAG%.
Ich habe exakt deinen Code kopiert und nur "rr_Dan" abgeändert. Die Push die ich dann erhalte lautet:

Guten %FEIERTAG% Abend zu Hause Sascha!

Kalender (holiday) habe ich eingebunden ("HomeEventsHolidayDevices"). Feiertag ist aktuell keiner.

Desweiteren kann ich die Wetterfunktion nicht nutzen.
Ich habe mein Wetterdevice (Yahoo, Modul "Weather") eingebunden unter "HomeYahooWeatherDevice".
Ein Klick auf "get weatherForecast", egal für welchen Tag bleibt absolut ereignislos.
Eine Idee wo ich da ansetzen kann?

grtz
CmdA

DeeSPe

Zitat von: C0mmanda am 15 März 2017, 23:11:22
Ich habe den Beispielcode für "HomeCMDcontactDoormainClosed" mal getestet.
Scheinbar gibt es (bei mir) ein Problem mit der Variable %FEIERTAG%.
Ich habe exakt deinen Code kopiert und nur "rr_Dan" abgeändert. Die Push die ich dann erhalte lautet:

Guten %FEIERTAG% Abend zu Hause Sascha!

Kalender (holiday) habe ich eingebunden ("HomeEventsHolidayDevices"). Feiertag ist aktuell keiner.

Heißt denn Dein Kalender auch wirklich FEIERTAG auf Basis der Datei FEIERTAG.holiday ?

Zitat von: C0mmanda am 15 März 2017, 23:11:22
Desweiteren kann ich die Wetterfunktion nicht nutzen.
Ich habe mein Wetterdevice (Yahoo, Modul "Weather") eingebunden unter "HomeYahooWeatherDevice".
Ein Klick auf "get weatherForecast", egal für welchen Tag bleibt absolut ereignislos.
Eine Idee wo ich da ansetzen kann?

Hast Du denn die dafür nötigen Textvorgaben eingerichtet?
Das muss nämlich jeder für sich selbst machen so wie er/sie es will.
Eine Default Vorgabe gibt es dafür nicht.

z.B.:

attr <HOMEMODE> HomeTextWeatherLong Es %TOBE% %CONDITION% bei %TEMPERATURE%°C und %HUMIDITY%% Luftfeuchtigkeit. Die gefühlte Temperatur ist %WINDCHILL%°C bei einer Windgeschwindigkeit von %WIND%km/h. Der Luftdruck ist %PRESSURETREND% bei %PRESSURE%hPa.
attr <HOMEMODE> HomeTextWeatherNoForecast Es ist leider keine Wettervorhersage für den angegebenen Tag verfügbar!
attr <HOMEMODE> HomeTextWeatherShort %CONDITION%, %TEMPERATURE%°C, %HUMIDITY%% Luftfeuchtigkeit, Luftdruck %PRESSURE%hPa


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

bastelfeak

Nach weiterem Rumspielen mit dem HOMEMODE Modul, habe ich noch ein paar Dinge die ich nicht leider selbst nicht lösen kann:

  • kann man einem Kontakt noch einen "schöneren" Namen geben, im %ALIAS% bezieht sich im Moment auf den Device Namen und der folgt eher einer Nomenklatur, als dass er besonders hübsch ist
  • Ich bekomme immer eine Meldung, wenn der Kontakt seinen Status meldet --> eigentlich ist nur eine Änderung interessant

Ich würde mich freuen wieder kompente Hilfe zu bekommen oder vielleicht auch nur den richtigen Hinweis :)

bastelfreak

DeeSPe

Zitat von: bastelfeak am 16 März 2017, 11:49:27
Nach weiterem Rumspielen mit dem HOMEMODE Modul, habe ich noch ein paar Dinge die ich nicht leider selbst nicht lösen kann:

  • kann man einem Kontakt noch einen "schöneren" Namen geben, im %ALIAS% bezieht sich im Moment auf den Device Namen und der folgt eher einer Nomenklatur, als dass er besonders hübsch ist
  • Ich bekomme immer eine Meldung, wenn der Kontakt seinen Status meldet --> eigentlich ist nur eine Änderung interessant

Ich würde mich freuen wieder kompente Hilfe zu bekommen oder vielleicht auch nur den richtigen Hinweis :)

bastelfreak

%ALIAS% verwendet (so wie der Name suggeriert und sofern vorhanden) den Wert des Devices welcher im Attribut alias abgelegt ist.
Dort kann man eben die passenden (schön klingenden) Namen hinterlegen. Ist das Attribut alias nicht belegt, so wird einfach nur als Fallback der Device Name verwendet.

Das zweite Problem liegt nicht an HOMEMODE sondern an Deinen Kontakten.
Setze mal bei denen das Attribut "event-on-change-reading" auf den/die entsprechenden Werte.

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

bastelfeak

Vielen Dank! Ich bin einfach noch ziemlich weit weg von einem guten Überblick von FHEM.

Eine weitere Frage, die sich mir heute noch auftat: Ich habe ein Presence über Bluetooth, leider gibt es dort immer mal wieder aussetzer, weshalb es auch einen dummy gibt, der erst nach einer gewissen Zeit auf abwesend schaltet. Kann man so eine Verzögerung direkt mit definieren? Oder muss ich meine dummies behalten?

Viele Grüße


DeeSPe

Das geht in PRESENCE selbst.
Das Attribut heißt absenceThreshold.

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

#324
Ich habe soeben einen neue stabile Version v0.257 zum Testen in den dev Branch geladen.
Neben einigen kleinen Fehlerbehebungen und Informationsergänzungen in der commandref sind auch die beiden neuen Attribute HomeDaytimes und HomeModeAlarmArmDelay dazu gekommen.

Mit HomeDaytimes können nun eigene Tageszeiten angelegt werden:
Zitatspace separated list of time|text pairs for possible daytimes starting with the first event of the day (lowest time)
default: 05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night

Mit HomeModeAlarmArmDelay in Sekunden kann das Aktivieren der Alarmanlage verzögert werden:
Zitattime in seconds for delaying modeAlarm arm... commands
must be a single number (valid for all modeAlarm arm... commands) or 3 space separated numbers for each modeAlarm arm... command individually (order: armaway armnight armhome)
values from 0 to 99999
default: 0
Das Deaktivieren der Alarmanlage passiert immer ohne jegliche Verzögerung.

Wer gerne mal vorab testen möchte kann das mit diesem Befehl innerhalb FHEM tun:
update all https://raw.githubusercontent.com/deespe/fhem-HOMEMODE/dev/controls_HOMEMODE.txt

Ich freue mich auf Euer Feedback.

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

Die dev Version wurde soeben auf v0.258 aktualisiert.
Ich habe das Format vom Attribut HomeDaytimes noch einmal geändert.
Nun kommt erst die Zeit (mit führender Null) und dann der Name des Events.
Das hat m.E. den Vorteil dass man, in dem nun großen Textfeld, die Einträge untereinander schreiben kann und man die Zeiten so schön vorn untereinander stehen hat.
Diese Änderung hat also rein kosmetische Gründe.
In v0.257 war es auch nicht möglich mit der Zeit bei 00:00 zu beginnen, das geht nun auch.

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

al4012

Hallo,
super modul.

Ich habe aber die Meldung:

NO devices with presence reading found of devspec "TYPE=PRESENCE" for resident "rr_AL"!

If any recognized presence device is wrong, please rename this device so that it will NOT match the residents names (al) somewhere in the device name.
After renaming simply execute "set Homemode updateInternalsForce" to redo this check.

in der Home Info.

leider finde ich nirgends eine erklärung oder was ich machen soll.

Danke für die Hilfe

Gruß
AL

FranzB94

Hi Al!

was dir vorgeschlagen wird zu machen hast du doch selber hier zitiert.  ;)

Zitat von: al4012 am 17 März 2017, 19:44:14
... If any recognized presence device is wrong, please rename this device so that it will NOT match the residents names (al) somewhere in the device name.
After renaming simply execute "set Homemode updateInternalsForce" to redo this check.


Gruß Franz

al4012

Ja,
sorry aber dafür bin ich wohl zu blöd, kapiere es nicht ...

Gruß
AL

DeeSPe

Zitat von: al4012 am 17 März 2017, 19:55:08
Ja,
sorry aber dafür bin ich wohl zu blöd, kapiere es nicht ...

Gruß
AL

Woran scheitert es genau?

Sprachbarriere?
Evtl. hilft es Dir FHEM auf Deutsch umzustellen!?
Die Fehlermeldungen sind nämlich schon in Deutsch verfügbar (commandref noch nicht).

Oder ist es von mir einfach zu schlecht erklärt mit der HomeInfo Meldung und der Dokumentation?
ZitatDamit die automatische Zuordnung der Presence Devices zu ihren ROOMMATE/GUEST Devices zuverlässig funktioniert, ist es nötig dass der Hauptteil des Namens des ROOMMATE/GUEST innerhalb des Namens des zugehörigen PRESENCE Device(s) vorkommt.
Im Attribut HomePresenceDeviceType kann man den zu suchenden TYPE von Presence Device vorgeben.
Per Default werden nur Devices vom TYPE PRESENCE gesucht und versucht den ROOMMATE/GUEST zuzuweisen.
Falls man z.B. auch Devices vom TYPE dummy zur Anwesenheitssteuerung benutzt, kann man diese im Attribut HomePresenceDeviceType mit hinzunehmen. Es sind alles Device TYPEn möglich die ein "presence" Reading mit den Werten "present" und "absent" bereitstellen. Mehrere TYPEn sind möglich da in diesem Attribut ein Regex erwartet wird. z.B.: dummy oder PRESENCE|dummy oder PRESENCE|dummy|ONKYO_AVR
Zitat von: Beispiel
Der Device Name meines ROOMMATE ist "rr_Dan".
Auf der Suche nach dem zugehörigen Presence Device wird der erste Teil (rr_ oder rg_) weggeschnitten und der Rest in Kleinbuchstaben umgewandelt.
Mit dem was übrig bleibt, bei mir also nur dan, werden die möglichen Presence Devices versucht zu erkennen.
Mein zugehöriges Presence Device heißt, historisch gewachsen, PRESENCE_rr_Dan und würde somit problemlos zugeordnet werden können.
Die Namen der zugehörigen Presence Devives könnten in ihrer kürzesten Form auch wie folgt sein um meinen ROOMMATE/GUEST Device zugeordnet zu werden:
pdan
danp
ZDan
DANZ
wenndannsonst

Aber Achtung, es funktioniert nicht mehr wenn die Namen uneindeutig sind. Wenn es z.B. eine rr_Dana geben würde mit Presence Device Name "pdani", dann würde diese Name auch bei mir (dan) passen. Das könnte man aber auch bewußt nutzen um mit einem Presence Device 2 ROOMMATE/GUEST Devices gleichzeitig zu steuern.
Wenn die Namen wirklich absolut eindeutig sind, dann könnte man den Regex im Attribut HomePresenceDeviceType sogar auf ".*" setzen.
Werden pro ROOMMATE/GUEST mehrere Presence Devices gefunden und zugeordnet, so wird automatisch dass Attribut HomePresenceDeviceAbsentCount-<NAME-ROOMMATE/GUEST> auf die Anzahl der gefundenen Presence Devices gesetzt, so dass der/die jeweilige ROOMMATE/GUEST immer erst als abwesend gewertet wird sobald alle zugehörigen Presence Devices abwesend sind. Analog dazu gibt es noch das Attribut HomePresenceDevicePresentCount-<NAME-ROOMMATE/GUEST>.

Wenn Du es nicht verstehst, verstehen es evtl. andere auch nicht.
Sage mir bitte was ich verbessern könnte dass es verständlicher wird!

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