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

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

Vorheriges Thema - Nächstes Thema

DeeSPe

Zitat von: patlabor am 17 September 2019, 10:38:20
Hallo zusammen,

seit einiger Zeit habe ich "leichte" Probleme mit dem Zusammenspiel von HOMEMODE, presence und residents.
Ich habe mehrere presence devices angelegt, welche die Handys meiner Familie auf anwesenheit überwachen. Per HOMEMODE lasse ich dann die passenden Residents auf an- bzw abwesend stellen.
Das hat auch immer wunderbar funktioniert. Die letzte Zeit kommt es aber immer wieder vor, das die Heizung an- oder Lichter abends aus bleiben.

Jetzt ist mir aufgefallen, das obwohl die presence devices richtig absent oder present anzeigen, die Residents einfach "tot" sind. Einer bleibt immer auf anwesend stehen, alle anderen springen regelmässig auf "???"  und ändern sich danach nicht mehr.

Ich kann einfach nicht nachvollziehen wo diese Änderungen herkommen. Auch im Log finde ich nichts was irgendetwas an den rr_.* ändern würde.

Jemand eine Idee wo ich hier anfangen kann?

Ich denke nicht dass es direkt etwas mit HOMEMODE zu tun hat, denn ich nutze es auch sehr intensiv und habe diesbezüglich keinerlei Probleme feststellen können.
Von HOMEMODE wird auch kein "???" gesetzt.

Du könntest evtl. mit "verbose 5" im HOMEMODE Device versuchen der Sache näher zu kommen. Damit solltest Du alle von HOMEMODE erkannten Events im Log finden.
Schau mal damit was passiert wenn die PRESENCE Devices ihren Status ändern. Werden die Events richtig im Log erkannt?

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

Ich habe soeben v1.5.0 von HOMEMODE in SVN eingecheckt.
Darin habe ich einen kleinen Wunsch aus dem "HOMEMODE 2.0 Wunschliste" Thema umgesetzt.
Es gibt nun HomeCMD Attribute für den location Wechsel von ROOMMATE/GUEST/PET.
Um die neuen Attribute zu erhalten ist es nötig nach dem Update einmalig "set TYPE=HOMEMODE updateInternalsForce" auszuführen.
Grundvoraussetzung dafür sind gesetzte rr_location/rg_locations/rp_locations in den jeweiligen ROOMMATE/GUEST/PET Devices und "attr TYPE=HOMEMODE HomeAdvancedUserAttr 1".

Changelog:
Zitatv1.5.0
    - added HomeCMDlocation support for ROOMMATE/GUEST/PET
    - changed some regex's from .* to .+

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

Borkk

Danke Dan, super support :-)

Über eine Sache grübel ich gerade. Ich würde gerne meine recht umfangreiche Batterieüberwachung mit HOMEMODE lösen. Ich habe dazu alle Devices mit battery Reading Homemode "bekannt gemacht" Sie erscheinen auch alle in SENSORSBATTERY.

Obwohl ein Device aktuell "low" meldet, steht im Homemode Reading batteryLow_ct "0".

Könnte es damit zusammenhängen das einige Devices im Reading battery nur ein "ok" melden, andere wiederum ein "100" ?
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)

DeeSPe

Zitat von: Borkk am 18 September 2019, 20:06:22
Danke Dan, super support :-)

Über eine Sache grübel ich gerade. Ich würde gerne meine recht umfangreiche Batterieüberwachung mit HOMEMODE lösen. Ich habe dazu alle Devices mit battery Reading Homemode "bekannt gemacht" Sie erscheinen auch alle in SENSORSBATTERY.

Obwohl ein Device aktuell "low" meldet, steht im Homemode Reading batteryLow_ct "0".

Könnte es damit zusammenhängen das einige Devices im Reading battery nur ein "ok" melden, andere wiederum ein "100" ?

Habe das Problem erkannt, suche aber noch nach einer vernünftigen Lösung.
Das Problem ist dass die battery.* Readings nur erstellt werden wenn ein entsprechendes Event eintrifft. Beim Hinzufügen der Sensoren wird aber kein Event ausgelöst und somit werden die Readings nicht gesetzt.
Ich denke ich werde im Laufe des Tages eine Lösung finden und dann per Update für morgen bereitstellen.

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

Borkk

Zitat von: DeeSPe am 19 September 2019, 10:54:15
Habe das Problem erkannt, suche aber noch nach einer vernünftigen Lösung.
Das Problem ist dass die battery.* Readings nur erstellt werden wenn ein entsprechendes Event eintrifft. Beim Hinzufügen der Sensoren wird aber kein Event ausgelöst und somit werden die Readings nicht gesetzt.
Ich denke ich werde im Laufe des Tages eine Lösung finden und dann per Update für morgen bereitstellen.

Gruß
Dan

Im Augenblick mache ich das so  ;)

Da ja eine Batterie nicht sofort ausfällt, wenn sie auf low geht, lebe ich damit das alle Stunde mal der Status abgefragt wird. Evtl. wäre das auch ein Lösungsansatz für Homemode.


+*01:00:00 {
if (
( ReadingsVal("br_tuer","battery","") eq "ok")
&&
( ReadingsVal("bd_fenster","battery","") eq "ok")
&&
( ReadingsVal("br_motion","battery","") eq "ok")
&&
( ReadingsVal("sz_tuer","battery","") eq "ok")
&&
( ReadingsVal("sz_switch1","battery","") eq "ok")
&&
( ReadingsVal("wz_tuer","battery","") eq "ok")
&&
( ReadingsVal("wz_switch_6x","battery","") eq "ok")
&&
( ReadingsVal("ds_tuer","battery","") eq "ok")
&&
( ReadingsVal("ds_tuer1","battery","") eq "ok")
&&
( ReadingsVal("ds_motion","battery","") eq "ok")
&&
( ReadingsVal("fl_tuer","battery","") eq "ok")
&&
( ReadingsVal("fl_switch_6x","battery","") eq "ok")
&&
( ReadingsVal("ts_light1","battery","") eq "ok")
&&
( ReadingsVal("ts_light2","battery","") eq "ok")
&&
( ReadingsVal("fl_move1","battery","") > 80)
&&
( ReadingsVal("fl_move2","battery","") > 80)
&&
( ReadingsVal("fl_move3","battery","") > 80)
&&
( ReadingsVal("fl_move4","battery","") > 80)
&&
( ReadingsVal("bd_move","battery","") > 80)
&&
( ReadingsVal("ts_netatmo","batteryState","") eq "ok")
&&
( ReadingsVal("sz_netatmo","batteryState","") eq "ok")
&&
( ReadingsVal("ts_regen","batteryState","") eq "ok")
&&
( ReadingsVal("ts_wind","batteryState","") eq "ok")
&&
( ReadingsVal("ds_waage","batteryState","") eq "ok")
)
{fhem ("set battery_all voll ; set LED07 led green")}
else
{fhem ("set battery_all schwach ; set LED07 led red")}
}
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)

DeeSPe

@Borkk:
Ich denke ich habe eine Lösung gefunden.
Wenn Du es vorab ausprobieren möchtest, dann gerne mit diesen Befehlen:
{my $get=GetFileFromURL("https://raw.githubusercontent.com/deespe/fhem-HOMEMODE/sync/FHEM/22_HOMEMODE.pm");; my @rows=split("\n",$get);; FileWrite("./FHEM/22_HOMEMODE.pm",@rows);; fhem "reload 22_HOMEMODE.pm;;set TYPE=HOMEMODE updateInternalsForce"}

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

Borkk

Zitat von: DeeSPe am 19 September 2019, 11:41:52
@Borkk:
Ich denke ich habe eine Lösung gefunden.
Wenn Du es vorab ausprobieren möchtest, dann gerne mit diesen Befehlen:
{my $get=GetFileFromURL("https://raw.githubusercontent.com/deespe/fhem-HOMEMODE/sync/FHEM/22_HOMEMODE.pm");; my @rows=split("\n",$get);; FileWrite("./FHEM/22_HOMEMODE.pm",@rows);; fhem "reload 22_HOMEMODE.pm;;set TYPE=HOMEMODE updateInternalsForce"}

Gruß
Dan

Sieht gut aus:
batteryLow          ds_tuer1   
batteryLow_ct      1               
batteryLow_hr     Tür Dusche

Jetzt hast du es ja deutlich erweitert. Wann wird jetzt "HomeCMDbatteryLow" getriggert? Welche Variablen gibt es?
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)

DeeSPe

Es hat sich nichts weiter geändert, nur dass jetzt auch schon schlappe Batterien beim Hinzufügen der Geräte erkannt werden.
Sobald ein Gerät mit niedrigem Batteriestand erkannt wird, wird HomeCMDbatteryLow ausgeführt.
Die folgenden Platzhalter gibt es dafür (die haben sich nicht verändert in der neuen Version):
Zitat%BATTERYLOW%
alias (or name if alias is not set) of the last battery sensor which reported low battery
%BATTERYLOWALL%
list of aliases (or names if alias is not set) of all battery sensor which reported low battery currently
%BATTERYLOWCT%
number of battery sensors which reported low battery currently

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

Spezialtrick

Ich habe heute ein Problem mit meinem HOMEMODE Modul bei dem Attribut HomeCMDmode-home festgestellt. Dieses habe ich wie folgt definiert:

attr Home HomeCMDmode-home set FL.Kamera off;
set Wz.Fernseher on;
set Pushover msg 'Herzlich Willkommen %ARRIVERS%!'


Normalerweise sollte nach meinem Verständnis diese Befehlskette nach Ankunft eines Bewohners ausgeführt werden. Leider passiert nichts.

Gegenteilig dazu funktioniert das Attribut attr Home HomeCMDmode-absent problemlos. Dieses ist bei mir so definitiert:

attr Home HomeCMDmode-absent set HarmonyHub:FILTER=activity!=PowerOff activity PowerOff;
set Sonos stopAll;
set Wz.Fernseher off;
set FL.Kamera on;
set Pushover msg 'Auf Wiedersehen %ARRIVERS%!'


Kann sich jemand dieses Verhalten erklären?  ???
FHEM - Debmatic - Zigbee2MQTT - Homekit

binford6000

Zitat von: Spezialtrick am 23 September 2019, 20:23:06
Ich habe heute ein Problem mit meinem HOMEMODE Modul bei dem Attribut HomeCMDmode-home festgestellt. Dieses habe ich wie folgt definiert:

attr Home HomeCMDmode-home set FL.Kamera off;
set Wz.Fernseher on;
set Pushover msg 'Herzlich Willkommen %ARRIVERS%!'


Normalerweise sollte nach meinem Verständnis diese Befehlskette nach Ankunft eines Bewohners ausgeführt werden. Leider passiert nichts.

Gegenteilig dazu funktioniert das Attribut attr Home HomeCMDmode-absent problemlos. Dieses ist bei mir so definitiert:

attr Home HomeCMDmode-absent set HarmonyHub:FILTER=activity!=PowerOff activity PowerOff;
set Sonos stopAll;
set Wz.Fernseher off;
set FL.Kamera on;
set Pushover msg 'Auf Wiedersehen %ARRIVERS%!'


Kann sich jemand dieses Verhalten erklären?  ???

Ich würde analog zu HomeCMDmode-absent dann auch HomeCMDmode-present verwenden.
Bzw. bei einem bestimmten Bewohner HomeCMDmode-present-<ROOMMATE> oder für alle
Bewohner HomeCMDmode-present-resident

VG Sebastian

wolfram

Guten Morgen zusammen,

ich habe eine Frage zu den "SENSORSENERGY" Objekten. Ich habe die FritzDect "Stromzähler" in homemode eingebunden. Allerdings liefern diese im Reading "energy" in Wh und nicht in kWh, was dazu führt, dass Homemode den Verbrauch in Faktor 1000 zu viel anzeigt, da offensichtlich kWh erwartet werden.
Kann ich irgendwo einen Umrechnungsfaktor in homemode hinterlegen? Oder muss ich das über ein userReading an den einzelnen Devices schon machen?

Vielen Dank und schöne Grüße
wolf

Spezialtrick

Zitat von: binford6000 am 25 September 2019, 15:39:27
Ich würde analog zu HomeCMDmode-absent dann auch HomeCMDmode-present verwenden.
Bzw. bei einem bestimmten Bewohner HomeCMDmode-present-<ROOMMATE> oder für alle
Bewohner HomeCMDmode-present-resident

VG Sebastian

Vielen Dank für deine Antwort Sebastian.

Meinst HomeCMDmode-home-resident oder HomeCMDpresence-present-resident?  ;D

Andere Attribute habe ich nicht.  :D
FHEM - Debmatic - Zigbee2MQTT - Homekit

binford6000

#1002
Zitat von: Spezialtrick am 27 September 2019, 21:51:28
Vielen Dank für deine Antwort Sebastian.

Meinst HomeCMDmode-home-resident oder HomeCMDpresence-present-resident?  ;D

Andere Attribute habe ich nicht.  :D

HomeCMDpresence-present wird ausgeführt wenn das HOMEMODE Device auf present geht,
also mind. ein ROOMMATE anwesend ist.

HomeCMDpresence-present-resident wird bei jedem ROOMMATE Device welches auf present geht.

HomeCMDpresence-present-resident und HomeCMDmode-home-resident sind m.M.n. identisch  ;)
Kannst ja mal in beiden einen Logeitrag ausführen lassen und schauen, was wann ausgeführt wird.

VG Sebastian

Borkk

#1003
Hallo Zusammen,

ich habe mal eine Frage in die Runde. Ich würde gerne eine Nachricht ausgeben, wenn eine Tür ein bestimmte Zeit lang offen ist. Leider sind die entsprechenden Attribute in der CommandRef und im Wiki nicht eindeutig beschrieben. z.T. gibt es scheinbar Attribute gar nicht mehr.

Im Grunde müsste es aber doch ganz simpel sein. Ich habe in "HomeCMDcontactOpenWarning1" einen einfachen msg Befehl hinterlegt. Er müsste doch nach der Zeit in "HomeSensorsContactOpenTimes" ausgeführt werden.

Denkfehler?
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)

Borkk

#1004
Ich habe es hin bekommen. Die "fehlenden" Attribute waren im Device... was ja auch absolut Sinn macht :)
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)