Zonen-basierte Anwesenheitserkennung und -steuerung

Begonnen von KernSani, 15 März 2019, 19:06:04

Vorheriges Thema - Nächstes Thema

KernSani

@Sebastian: Dann ist das ein Feature:
Zitat
Dadurch wird die Anwesenheitswahrscheinlichkeit der Toilette auf den Flur gespiegelt (sofern Flur > 0% und Toilette > Flur).

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Neue Version (im ersten Post) erlaubt nun auch Perl in den hz_cmd.* Attributen. Um den "großen" Editor zu bekommen, müssen die userattr neu generiert werden (jeden state in hz_state einmal umbenamsen)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

binford6000

Moin,
beim Ausführen von PERL-Code bekomme ich Fehler im Log:
2019.03.23 10:19:44 1: [homezone - fl_zone]: Unknown command {
, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Die hz_cmd-Attribute unterstützen offenbar keine Tabs:
{
fhem("set fl_szene scene anwesend");
}

funktioniert nicht. Das hier dagegen schon:
{fhem("set fl_szene scene anwesend");}


VG Sebastian

KernSani

Zitat von: binford6000 am 23 März 2019, 10:27:55
Die hz_cmd-Attribute unterstützen offenbar keine Tabs:
Danke für den Hinweis. Tatsächlich haben die cmds kein multiline perl unterstützt... Ist in 0.0.10 erledigt (s. erster Post)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

binford6000

Moin Oli,
ich möchte die homezone-interne Variable $name verwenden:
{
my $room = (split /_/,"$name")[0];
fhem("set ".$room."_szene scene abwesend");
}

Bekomme aber einen gängigen Fehler:
Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at (eval 22338) line 2.

Klar könnte ich die auch deklarieren. Aber dann funktioniert der Code nicht...
Was mache ich falsch?
VG Sebastian

binford6000

Nochmal ich:
Kann es sein dass mit V 0.0.11 sich der STATE nicht aktualisiert?  :o
Ich setze occupied manuell auf 30 und löse den bwm aus. occupied geht dann korrekt auf 99 aber state und STATE bleiben auf unlikely....

Historie löschen
Internals:
   DEF       
   FUUID      5c8bead4-f33f-0308-08a7-e01e244c7c0155f4
   FVERSION   98_homezone.pm:v0.0.9-s18522/2019-02-07
   NAME       fl_zone
   NR         401
   NTFY_ORDER 50-fl_zone
   STATE      unlikely
   TYPE       homezone
   VERSION    0.0.11
   HELPER:
     doors      0
   READINGS:
     2019-03-24 09:23:36   condition       open
     2019-03-24 10:08:57   lastDayTime     day
     2019-03-24 10:08:57   lastLumi        140
     2019-03-24 10:08:57   lastZone        self
     2019-03-24 10:08:57   occupied        99
     2019-03-24 10:04:12   state           unlikely
   helper:
     TIMER      1553418567
Attributes:
   devStateIcon present:user_available@blue likely:user_available@lightgreen unlikely:user_unknown@orange absent:user_away@red
   hz_dayTimes 05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night
   hz_decay   300
   hz_decay_evening 601
   hz_luminanceReading Wohnung:luminance
   hz_occupancyEvent fl_bwm:motion
   hz_state   100:present 50:likely 1:unlikely 0:absent
   icon       floor
   userattr   ...


Mit V 0.0.10 ist das in Ordnung.
Dort habe ich bemerkt dass die interne Version bei 0.0.9 bleibt obwohl das Modul bereits V 0.0.10 ausweist (Multiline Perl funzt...).

VG Sebastian

KernSani

Hi Sebastian,
Den Fehler mit dem STATE hatte ich auch, dachte aber ich hätte ihn vor dem Hochladen behoben :-[ Ich checke das später mal (und schau mir $name an... da muss ich vermutlich irgendwie was mit übergeben)


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ComputerZOO

Zitat von: binford6000 am 24 März 2019, 10:16:31
Nochmal ich:
Kann es sein dass mit V 0.0.11 sich der STATE nicht aktualisiert?  :o
Ich setze occupied manuell auf 30 und löse den bwm aus. occupied geht dann korrekt auf 99 aber state und STATE bleiben auf unlikely....

Kann ich bestätigen, habe mit der 0.0.11 (24.03.2019) auch keine Aktualisierungen mehr im STATE/state.

KernSani

Sorry, das überraschend erfreuliche #NEDGER hat mir gestern die Zeit geraubt. Bei der bei mir laufenden Version funktioniert das Update des STATE wieder, dafür sind die CMDs buggy- das bekomme ich heute aber gefixt und dann gibt's eine neue Version.


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ComputerZOO

Da habe ich gleich noch eine Idee/Wunsch.
Ich habe mir ein homezone-Master-Gerät angelegt, welches den Gesamtstatus monitored. Funktioniert wunderbar, aber die Kirsche auf der Torte wäre noch ein Reading mit der homezone, die am wahrscheinlichsten ,,occupied" ist, sprich das homezone-Device mit der höchsten Prozentzahl.

binford6000

Zitat von: ComputerZOO am 25 März 2019, 20:31:21
Da habe ich gleich noch eine Idee/Wunsch.
Ich habe mir ein homezone-Master-Gerät angelegt, welches den Gesamtstatus monitored. Funktioniert wunderbar, aber die Kirsche auf der Torte wäre noch ein Reading mit der homezone, die am wahrscheinlichsten ,,occupied" ist, sprich das homezone-Device mit der höchsten Prozentzahl.
Wie sieht das homezone-Master-Gerät denn aus?
VG Sebastian

KernSani

Wenn der homezone-master alle anderen homezones als "Kind" hat, sollte im lastZone reading immer das mit dem höhsten Wert stehen... Wenn das ganze mehrstufig aufgebaut ist, wird's schwieriger... Ich denke mal nach, wie das elegant zu lösen wäre.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ComputerZOO

Zitat von: binford6000 am 25 März 2019, 21:03:18
Wie sieht das homezone-Master-Gerät denn aus?
VG Sebastian

Genauso, wie KernSani es beschrieben hat. in hz_children stehen alle anderen homezone-Devices drin.

Zitat von: KernSani am 25 März 2019, 21:24:11
Wenn der homezone-master alle anderen homezones als "Kind" hat, sollte im lastZone reading immer das mit dem höhsten Wert stehen... Wenn das ganze mehrstufig aufgebaut ist, wird's schwieriger... Ich denke mal nach, wie das elegant zu lösen wäre.


Stimmt, lastZone sollte wohl die Funktion haben, die ich gesucht habe.

KernSani

Zitat von: ComputerZOO am 25 März 2019, 22:01:42
Stimmt, lastZone sollte wohl die Funktion haben, die ich gesucht habe.
Tja... zu spät - Es gibt ein neues Reading lastChild, das auch über mehrere Hierarchie-Ebenen funktioniert (bei mir hz_home hat hz_eg und hz_og, darunter hängen die eigentlichen hzs, hz_home seigt dann z.B. hz_eg_kueche an)

Zitat von: binford6000 am 24 März 2019, 09:52:51
ich möchte die homezone-interne Variable $name verwenden:
geht jetzt auch

und der bug mit dem STATE ist auch behoben (und Attribut hz_disableOnlyCmds funktioniert ordentlich)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

binford6000

Hallo,
nach zwei Tagen Test habe ich keine besonderen Vorkommnisse gehabt.
Dafür aber einen  Feature-Request: Könnte man dem set inactive einen Parameter für die Zeit mitgeben?
set .*_zone inactive 300
Der Anwendungsfall besteht darin dass ich zB. während gotosleep/awoken keine Bewegungssteuerung haben möchte.
Ja es gibt das Attribut hz_disableOnlyCmds. Aber das ist dann imm er mit save verbunden und damit "unschön".

Nur so eine Idee. Ich könnte mir auch anders helfen  ;)
VG Sebastian