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

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

Vorheriges Thema - Nächstes Thema

DeeSPe

#855
Zitat von: UweUwe am 07 Februar 2019, 10:23:41
Hallo,
hab auch mit HOMEMODE begonnen, also < Frischling.  Residents läuft , gesteuert von Geofancy schon seit längerem.
Um einen ersten Erfolg in HOMEMODE zu bekommen, hab ich die Attribute HomeSensorTemperaturOutside, HomeSensorsMotion, HomeSensorContact, mit den Devspec besetzt und sehe jetzt auch meine devices  NOTIFYDEV, RESIDENTS, SENSORCONTACT, etc..
Jetzt möchte ich "Darstellen". Temperatur, offene Türen, etc.. , Bwewgungsmelder, ...
Ich komme aber nicht auf eine Darstellung ähnlich: https://wiki.fhem.de/w/images/thumb/8/85/HOMEMODE_Device.png/800px-HOMEMODE_Device.png.
Mit HomeAdvancedDetails hab ich mich schon versucht room, details, both, etc.
Ein kleiner Tip wäre prima, vielleicht ein kleines Beispiel, wie man eine erste Darstellung machen kann.


Merci.

Wenn HomeAdvancedDetails auf room steht werden die erweiterten Daten nur in den Raumansichten dargestellt.
Wenn HomeAdvancedDetails auf details steht werden die erweiterten Daten nur in der Detailansicht dargestellt, also wenn man auf dem Namen des Devices in einem Raum klickt.
Wenn HomeAdvancedDetails auf both steht werden die erweiterten Daten in den Raumansichten und in der Detailansicht dargestellt.

Die erste Zeile (also Temperatur, Luftfeuchte und Luftdruck) wird nur angezeigt wenn das Attribut HomeYahooWeatherDevice befüllt wurde.
Die zweite Zeile (Leistung, Energie, Licht) wird nur angezeigt wenn die Attribute HomeSensorsPowerEnergy und HomeSensorsLuminance befüllt wurden.
Die dritte Zeile (Offen, Sabotiert und Alarme) wird nur angezeigt wenn das Attribut HomeSensorsContact befüllt wurde.

In der hier angehängten Version habe ich für die Darstellung der ersten Zeile statt nur HomeYahooWeatherDevice auch die externen Sensoren aus den Attributen HomeSensorAirpressure, HomeSensorHumidityOutside und HomeSensorTemperatureOutside zugelassen. Wenn diese Attribute also statt HomeYahooWeatherDevice befüllt wurden, dann wird die erste Zeile auch dargestellt.
Bitte gerne mal testen.

Gruß
Dan

EDIT: Dateianhang entfernt.
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

Super Modul, vereinfacht mir so einiges, aber leider habe ich ein kleines Verständnisproblem.
Ich bin der Meinung das ganze recht gut verstanden zu haben, und komme auch mit den Attributen die über das Drop-down Menü erreichbar sind scheinbar recht gut zurecht, aber ich versuche gerade eine Aktion ausführen zu lassen, sobald ein bestimmter Bewohner die Wohnung betritt/verlässt. Das sollte ja wenn ich das richtig verstanden habe über das HomeCMDpresence-absent/present-<ROOMMATE> Attribut möglich sein.
In meinem Fall müsste das dann z.B. HomeCMDpresence-absent-rr_patrick sein.
Diese Attribut gibt es aber in der Dropdown Liste nicht, ich finde lediglich HomeCMDpresence-absent-resident, aber das ist ja nicht das was ich suche.
Versuche ich das Attribut über die Eingabezeile von Hand per:

attr home HomeCMDpresence-absent-rr_patrick set test on

anzulegen, bekomme ich folgende Fehlermeldung:

home: unknown attribute HomeCMDpresence-absent-rr_patrick. Type 'attr home ?' for a detailed list.

Irgendwie stehe ich hier voll auf dem Schlauch. Evtl. reicht es ja das mir jemand eine Schubs gibt, damit ich vom Schlauch runtergehe, aber ich verstehe einfach nicht wie ich das Attribut einstellen kann.

DeeSPe

Zitat von: patlabor am 07 Februar 2019, 22:47:32
Super Modul, vereinfacht mir so einiges, aber leider habe ich ein kleines Verständnisproblem.
Ich bin der Meinung das ganze recht gut verstanden zu haben, und komme auch mit den Attributen die über das Drop-down Menü erreichbar sind scheinbar recht gut zurecht, aber ich versuche gerade eine Aktion ausführen zu lassen, sobald ein bestimmter Bewohner die Wohnung betritt/verlässt. Das sollte ja wenn ich das richtig verstanden habe über das HomeCMDpresence-absent/present-<ROOMMATE> Attribut möglich sein.
In meinem Fall müsste das dann z.B. HomeCMDpresence-absent-rr_patrick sein.
Diese Attribut gibt es aber in der Dropdown Liste nicht, ich finde lediglich HomeCMDpresence-absent-resident, aber das ist ja nicht das was ich suche.
Versuche ich das Attribut über die Eingabezeile von Hand per:

attr home HomeCMDpresence-absent-rr_patrick set test on

anzulegen, bekomme ich folgende Fehlermeldung:

home: unknown attribute HomeCMDpresence-absent-rr_patrick. Type 'attr home ?' for a detailed list.

Irgendwie stehe ich hier voll auf dem Schlauch. Evtl. reicht es ja das mir jemand eine Schubs gibt, damit ich vom Schlauch runtergehe, aber ich verstehe einfach nicht wie ich das Attribut einstellen kann.

Gibt es denn "rr_patrick" bereits im Internal "RESIDENTS"?
Falls nicht mal bitte "set <HOMEMODE-DEVICE> updateInternalsForce" aufrufen und prüfen ob "rr_patrick" nun im Internal "RESIDENTS" ist und das entsprechende Attribut vorhanden ist.

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

ja, das reading ist vorhanden.
anbei mal ein list home:


Internals:
   CHANGED   
   DEF        bewohner
   NAME       home
   NOTIFYDEV  bewohner,global,presence_aaliyah,presence_carla,presence_patrick,presence_viktor,rr_aaliyah,rr_carla,rr_patrick,rr_viktor,twilight,unwetter
   NR         62
   NTFY_ORDER 51-home
   RESIDENTS  rr_aaliyah,rr_carla,rr_patrick,rr_viktor
   STATE      day
   TYPE       HOMEMODE
   VERSION    1.4.5
   READINGS:
     2019-02-08 12:10:54   alarmState      disarm
     2019-02-08 10:00:00   daytime         day
     2019-02-08 08:02:39   lastAbsentByPresenceDevice presence_aaliyah
     2019-02-08 08:02:39   lastAbsentByResident rr_aaliyah
     2019-02-08 12:10:53   lastActivityByPresenceDevice presence_carla
     2019-02-08 12:10:54   lastActivityByResident rr_carla
     2019-02-07 23:24:49   lastAsleepByResident rr_viktor
     2019-02-08 06:22:01   lastAwokenByResident rr_viktor
     2019-02-07 18:49:22   lastGoneByResident rr_aaliyah
     2019-02-08 12:10:53   lastPresentByPresenceDevice presence_carla
     2019-02-08 12:10:54   lastPresentByResident rr_carla
     2019-02-08 08:55:41   light           6
     2019-02-08 12:10:54   location        home
     2019-02-08 12:10:54   mode            day
     2019-02-08 12:10:54   modeAlarm       disarm
     2019-02-08 12:10:54   presence        present
     2019-02-08 12:10:54   prevActivityByResident rr_carla
     2019-02-08 12:10:54   prevLocation    underway
     2019-02-08 12:10:54   prevMode        absent
     2019-02-08 12:10:54   prevModeAlarm   armaway
     2019-02-07 22:01:34   publicIP        xxx.xxx.xxx.xxx
     2019-02-04 00:39:23   season          winter
     2019-02-08 12:10:54   state           day
     2019-02-08 08:55:41   twilight        100
     2019-02-08 08:55:41   twilightEvent   sr_weather
     2019-02-08 11:55:53   uwz_warnCount   1
   helper:
     enabledDevices bewohner,global,presence_aaliyah,presence_carla,presence_patrick,presence_viktor,rr_aaliyah,rr_carla,rr_patrick,rr_viktor,twilight,unwetter
     lastChangedAttr HomeYahooWeatherDevice
     lastChangedAttrValue wetter
Attributes:
   HomeAutoAwoken 10
   HomeAutoPresence 1
   HomeAutoPresenceSuppressState asleep
   HomeTwilightDevice twilight
   HomeUWZ    unwetter
   devStateIcon absent:user_away:dnd+on
gone:user_ext_away:dnd+on
dnd:audio_volume_mute:dnd+off
gotosleep:scene_sleeping:dnd+on
asleep:scene_sleeping_alternat:dnd+on
awoken:weather_sunrise:dnd+on
home:status_available:dnd+on
morning:weather_sunrise:dnd+on
day:weather_sun:dnd+on
afternoon:weather_summer:dnd+on
evening:weather_sunset:dnd+on
night:weather_moon_phases_2:dnd+on
   icon       floor
   room       HOMEMODE
   userattr   HomeCMDdaytime-afternoon:textField-long HomeCMDdaytime-day:textField-long HomeCMDdaytime-evening:textField-long HomeCMDdaytime-morning:textField-long HomeCMDdaytime-night:textField-long HomeCMDmode-afternoon:textField-long HomeCMDmode-day:textField-long HomeCMDmode-evening:textField-long HomeCMDmode-morning:textField-long HomeCMDmode-night:textField-long HomeCMDseason-autumn:textField-long HomeCMDseason-spring:textField-long HomeCMDseason-summer:textField-long HomeCMDseason-winter:textField-long
   webCmd     modeAlarm


Passende Attribute zu den einzelnen Residents sind jedoch kein einziges vorhanden.

DeeSPe

Zitat von: patlabor am 08 Februar 2019, 12:16:43
ja, das reading ist vorhanden.
anbei mal ein list home:


Internals:
   CHANGED   
   DEF        bewohner
   NAME       home
   NOTIFYDEV  bewohner,global,presence_aaliyah,presence_carla,presence_patrick,presence_viktor,rr_aaliyah,rr_carla,rr_patrick,rr_viktor,twilight,unwetter
   NR         62
   NTFY_ORDER 51-home
   RESIDENTS  rr_aaliyah,rr_carla,rr_patrick,rr_viktor
   STATE      day
   TYPE       HOMEMODE
   VERSION    1.4.5
   READINGS:
     2019-02-08 12:10:54   alarmState      disarm
     2019-02-08 10:00:00   daytime         day
     2019-02-08 08:02:39   lastAbsentByPresenceDevice presence_aaliyah
     2019-02-08 08:02:39   lastAbsentByResident rr_aaliyah
     2019-02-08 12:10:53   lastActivityByPresenceDevice presence_carla
     2019-02-08 12:10:54   lastActivityByResident rr_carla
     2019-02-07 23:24:49   lastAsleepByResident rr_viktor
     2019-02-08 06:22:01   lastAwokenByResident rr_viktor
     2019-02-07 18:49:22   lastGoneByResident rr_aaliyah
     2019-02-08 12:10:53   lastPresentByPresenceDevice presence_carla
     2019-02-08 12:10:54   lastPresentByResident rr_carla
     2019-02-08 08:55:41   light           6
     2019-02-08 12:10:54   location        home
     2019-02-08 12:10:54   mode            day
     2019-02-08 12:10:54   modeAlarm       disarm
     2019-02-08 12:10:54   presence        present
     2019-02-08 12:10:54   prevActivityByResident rr_carla
     2019-02-08 12:10:54   prevLocation    underway
     2019-02-08 12:10:54   prevMode        absent
     2019-02-08 12:10:54   prevModeAlarm   armaway
     2019-02-07 22:01:34   publicIP        xxx.xxx.xxx.xxx
     2019-02-04 00:39:23   season          winter
     2019-02-08 12:10:54   state           day
     2019-02-08 08:55:41   twilight        100
     2019-02-08 08:55:41   twilightEvent   sr_weather
     2019-02-08 11:55:53   uwz_warnCount   1
   helper:
     enabledDevices bewohner,global,presence_aaliyah,presence_carla,presence_patrick,presence_viktor,rr_aaliyah,rr_carla,rr_patrick,rr_viktor,twilight,unwetter
     lastChangedAttr HomeYahooWeatherDevice
     lastChangedAttrValue wetter
Attributes:
   HomeAutoAwoken 10
   HomeAutoPresence 1
   HomeAutoPresenceSuppressState asleep
   HomeTwilightDevice twilight
   HomeUWZ    unwetter
   devStateIcon absent:user_away:dnd+on
gone:user_ext_away:dnd+on
dnd:audio_volume_mute:dnd+off
gotosleep:scene_sleeping:dnd+on
asleep:scene_sleeping_alternat:dnd+on
awoken:weather_sunrise:dnd+on
home:status_available:dnd+on
morning:weather_sunrise:dnd+on
day:weather_sun:dnd+on
afternoon:weather_summer:dnd+on
evening:weather_sunset:dnd+on
night:weather_moon_phases_2:dnd+on
   icon       floor
   room       HOMEMODE
   userattr   HomeCMDdaytime-afternoon:textField-long HomeCMDdaytime-day:textField-long HomeCMDdaytime-evening:textField-long HomeCMDdaytime-morning:textField-long HomeCMDdaytime-night:textField-long HomeCMDmode-afternoon:textField-long HomeCMDmode-day:textField-long HomeCMDmode-evening:textField-long HomeCMDmode-morning:textField-long HomeCMDmode-night:textField-long HomeCMDseason-autumn:textField-long HomeCMDseason-spring:textField-long HomeCMDseason-summer:textField-long HomeCMDseason-winter:textField-long
   webCmd     modeAlarm


Passende Attribute zu den einzelnen Residents sind jedoch kein einziges vorhanden.

Setze mal bitte:
attr home HomeAdvancedUserAttr 1

Dann sollten die Attribute verfügbar sein.

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

dk3572

Hallo,

ich möchte bei einem bestimmten Scenario ein Licht blinken lassen.

fhem("define HoflichtBlinken at +*{3}00:00:02 set Hoflicht on-for-timer 1")

Das funktioniert soweit auch. Allerdings schreit Fhem dann nach einem save (rotes Fragezeichen).
Wie könnte man das Blinken besser lösen?

Danke für Hilfe und VG
Dieter

DeeSPe

Zitat von: dk3572 am 08 Februar 2019, 12:53:36
Hallo,

ich möchte bei einem bestimmten Scenario ein Licht blinken lassen.

fhem("define HoflichtBlinken at +*{3}00:00:02 set Hoflicht on-for-timer 1")

Das funktioniert soweit auch. Allerdings schreit Fhem dann nach einem save (rotes Fragezeichen).
Wie könnte man das Blinken besser lösen?

Danke für Hilfe und VG
Dieter

Das ist aber keine Frage zu HOMEMODE sondern zu at!!!

Was ist denn Hoflicht für ein Device? Kennt es kein "set Hoflicht blink 3 2"?

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

dk3572

Zitat von: DeeSPe am 08 Februar 2019, 13:00:35
Das ist aber keine Frage zu HOMEMODE sondern zu at!!!

Was ist denn Hoflicht für ein Device? Kennt es kein "set Hoflicht blink 3 2"?

Gruß
Dan

Ok, sorry, dachte weil ich es in HOMEMODE verwenden möchte.
Es ist ein Homematic Schalter HM-LC-SW1-FM

DeeSPe

Zitat von: dk3572 am 08 Februar 2019, 13:08:49
Ok, sorry, dachte weil ich es in HOMEMODE verwenden möchte.
Es ist ein Homematic Schalter HM-LC-SW1-FM

Ja klar, ist aber trotzdem kein Problem von HOMEMODE. ;)

Benutze mal bitte das at so:
fhem("define -temporary HoflichtBlinken at +*{3}00:00:02 set Hoflicht on-for-timer 1")

Damit sollte es ohne das rote Fragezeichen gehen.

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

dk3572

Zitat von: DeeSPe am 08 Februar 2019, 13:11:33
Ja klar, ist aber trotzdem kein Problem von HOMEMODE. ;)

Ich hatte ehrlich gesagt insgeheim auf dich gesetzt  ;)
Und siehe da, deine Lösung funktioniert.
Vielen Dank und schönes Wochenende.
Dieter

patlabor

Zitat von: DeeSPe am 08 Februar 2019, 12:49:57
Setze mal bitte:
attr home HomeAdvancedUserAttr 1

Dann sollten die Attribute verfügbar sein.

Gruß
Dan

Danke, das war der kleine Stupser der mir gefehlt hat. Ist mal wieder wie immer, kaum macht man etwas richtig, funktioniert es auch.

DeeSPe

Zitat von: dk3572 am 08 Februar 2019, 13:16:21
Ich hatte ehrlich gesagt insgeheim auf dich gesetzt  ;)
Und siehe da, deine Lösung funktioniert.
Vielen Dank und schönes Wochenende.
Dieter

Zitat von: patlabor am 08 Februar 2019, 13:25:30
Danke, das war der kleine Stupser der mir gefehlt hat. Ist mal wieder wie immer, kaum macht man etwas richtig, funktioniert es auch.

Schön dass ich Euch beiden helfen konnte.
Euch auch ein schönes Wochenende.

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

dk3572

Zitat von: DeeSPe am 08 Februar 2019, 13:31:12
Schön dass ich Euch beiden helfen konnte.
Euch auch ein schönes Wochenende.

Gruß
Dan

Ich muss dich leider noch mal behelligen. Sorry

Jetzt möchte ich den alias des Kontaktes, der noch offen ist, übergeben.
So akzeptiert es HOMEMODE aber nicht:

{
my @sensors=devspec2array('.*(Fenster|tuer).*:FILTER=state=open');
if (@sensors) {
      foreach my $sensors(@sensors)
  {
        fhem("msg push \@rr_Dieter (AttrVal("$sensors","alias", "$sensors")) ist noch offen");
      }
}
}


Und ja, ich habe schon gesucht bevor ich dich wieder belästige  ;)

DeeSPe

#868
Zitat von: dk3572 am 08 Februar 2019, 13:49:50
Ich muss dich leider noch mal behelligen. Sorry

Jetzt möchte ich den alias des Kontaktes, der noch offen ist, übergeben.
So akzeptiert es HOMEMODE aber nicht:

{
my @sensors=devspec2array('.*(Fenster|tuer).*:FILTER=state=open');
if (@sensors) {
      foreach my $sensors(@sensors)
  {
        fhem("msg push \@rr_Dieter (AttrVal("$sensors","alias", "$sensors")) ist noch offen");
      }
}
}


Und ja, ich habe schon gesucht bevor ich dich wieder belästige  ;)

{
my @sensors=devspec2array('.*(Fenster|tuer).*:FILTER=state=open');
if (@sensors) {
      foreach my $sensors(@sensors)
  {
            fhem("msg push \@rr_Dieter ".AttrVal($sensors,"alias", $sensors)." ist noch offen");
          }
      }
}


oder wenn Du Deine Fenster- und Türkontakte zu HOMEMODE hinzugefügt hast geht es einfacher mit (z.B. Attribut HomeCMDmodeAlarm-armaway):
{
  my $is = %ALARMCT% > 1 ? "sind" : "ist";
  my $msg;
  $msg .= "ACHTUNG: %ALARMHR% $is noch offen!!!" if (%ALARMCT%);
  fhem "msg \@%RESIDENT% $msg" if ($msg);
}


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

dk3572

Wie immer, prompt und suverän  ;)
Funktioniert.

Wer soll da mit den Unterschieden Punkt, Klammer, Anführungszeichen,..... noch durchblicken  ???  ;D