Dummy-state in structure (presence) mit aufnehmen

Begonnen von Spliddorama, 06 April 2017, 23:41:00

Vorheriges Thema - Nächstes Thema

Spliddorama

Hi Zusammen,

wenn man einmal anfängt Fragen zu stellen :|
Hier die nächste.

Ich habe zwei PRESENCE-Einträge in einer "structure" zusammengefasst, um den Anwesenheitsstatus einer Wohnung festzulegen.
Dies funktioniert soweit perfekt (ist ja auch kein Hexenwerk).

Hier die bisherigen Einträge:
define Stefan PRESENCE lan-ping 192.168.192.51 10
attr Stefan userattr presence presence_map structexclude
attr Stefan event-on-change-reading state
attr Stefan group Anwesenheit
attr Stefan presence Zuhause
attr Stefan room Anwesenheit


define Anna PRESENCE lan-ping 192.168.192.65 10
attr Anna userattr presence presence_map structexclude
attr Anna event-on-change-reading state
attr Anna group Anwesenheit
attr Anna presence Zuhause
attr Anna room Anwesenheit

define Zuhause structure presence Stefan Anna
attr Zuhause clientstate_behavior relative
attr Zuhause clientstate_priority present absent
attr Zuhause event-on-change-reading state
attr Zuhause group Status
attr Zuhause room Anwesenheit
define Zuhause_present notify Zuhause:present {system("sudo /usr/bin/send 00111 2 0")}
define Zuhause_absent notify Zuhause:absent {system("sudo /usr/bin/send 00111 2 1")}


Ist niemand zu Hause, wird sofort (ich werde das Ganze noch mit Timern, etc versehen) die Funksteckdose (Baumarktprodukt) geschaltet, an welcher eine IP-Cam hängt.

Da sich Handys immer wieder mal aus dem WLAN verabschieden, möchte ich nun noch folgenden Dummy in diese "structure" übernehmen.

define TV dummy
attr TV devStateIcon on:it_television@green  off:it_television@grey
attr TV fp_floorplan 440,191,0,
attr TV group Heimkino
attr TV room Wohnzimmer
attr TV webCmd :
attr TV setList on off
define TV_off notify TV:off {system("sudo /usr/bin/send 10001 2 0")}
define TV_on notify TV:on {system("sudo /usr/bin/send 10001 2 1")}


In dem Fall soll "Zuhause" weiterhin auf "presence" bleiben, wenn die Funksteckdose "TV" eingeschaltet ist, auch wenn beide Handys abwesend/absent sind.
Der Dummy hat jedoch nur einen "state" (on/off).

Ist es möglich, den "TV" dennoch in der "structure" zu berücksichtigen?
Ich freue mich natürlich auch über Alternativen.

Besten Dank & Gruß
Spliddorama

DeeSPe

Bei PRESENCE Devices kann man absenceThreshold setzen.

Statt des structure solltest Du lieber RESIDENTS verwenden.

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

KernSani

Grundsätzlich erstmal: Statt mit structures und PRESENCE zu arbeiten (was grundsätzlich nicht falsch ist) könntest du dir mal RESIDENTS und ROOMMATES ansehen.

Zur eigentlichen Frage: Nimm die Dose mit in die structure auf und setze bei der Dose das Attribut presence_map.

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

DeeSPe

Für Deine Baumarktsteckdose empfehle ich z.B. dieses Modul.
Das ist eine Neuentwicklung von GenShellSwitch mit ein paar Vorzügen.

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

Spliddorama

#4
Wow! Ich danke euch vielmals für euer schnelles Feedback.
Ich werde mich auch mit "ROOMMATES" sowie dem neuen modul befassen.

Natürlich möchte ich gerade auf die Schnelle testen und habe jetzt das Attribut "presence_map" genutzt.
Dies habe ich ja auch so für die mobilen Geräte verwendet.
attr TV userattr presence presence_map on:present off:absent

Liege ich richtig, dass dies eine Art "Übersetzung" (ähnlich "eventMap" ist)?
Wenn ja, verstehe ich diese nicht ganz, da "Zuhause" nun neben dem aktuellen Status "presence" Buttons für "on" und "off" verpasst wurden ;)
Leider finde ich das Attribut bzw. eine Erläuterung nicht im Wiki bzw. via Google-Suche.
Suche ich hier im Forum, finde ich lediglich diesen Beitrag.

EDIT: Mit absenceThreshold ist mir denke ich schon geholfen. Nicht schön, aber ich werde zu einem späteren Zeitpunkt die alternativen Methoden testen.

@DeeSPe: Danke für das Modul. Werde es zukünftig nutzen!

KernSani

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

Spliddorama

Leider finde ich dort trotz auführlicher STRG+F Suche keine Infos.
Ich werde nun einen weiteren dummy erstellen, welcher auf present gesetzt wird, sobal das TV den Status "on" hat und dies mit in die Gruppe aufnehmen.

Beste Grüße

KernSani

du darfst natürlich nicht nach presence_map oder sowas suchen... unter structure wird das Attribut <struct_type>_map beschrieben:

Zitat
<struct_type>_map
With this attribute, which has to specified for the structure- member, you can redefine the value reported by a specific structure-member for the structure value. The attribute has three variants:
readingName
take the value from readingName instead of state.
oldVal:newVal
if the state reading matches oldVal, then replace it with newVal
readingName:oldVal:newVal
if readingName matches oldVal, then replace it with newVal
Example:
define door OWSWITCH <ROMID>
define lamp1 dummy
attr lamp1 cmdlist on off
define kitchen structure struct_kitchen lamp1 door
attr kitchen clientstate_priority An|on OK|Aus|off
attr lamp1 struct_kitchen_map on:An off:Aus
attr door struct_kitchen_map A:open:on A:closed:off
attr door2 struct_kitchen_map A

In deinem Fall sollte ein Attribut presence_map automatisch im TV_dummy verfügbar sein, sobald der Dummy in der Structure ist. dann sollte
attr TV_dummy on:present off:absent
eigentlich das tun, was du möchtest...

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

Hollo

Zitat von: Spliddorama am 06 April 2017, 23:41:00
...Da sich Handys immer wieder mal aus dem WLAN verabschieden, möchte ich nun noch folgenden Dummy in diese "structure" übernehmen...
Zur "Handy-Anwesenheits-Überwachung" hat sich bei mehreren Usern (einschliesslich mir) die Methode über bluetooth als wesentlich stabiler und sicherer herausgestellt.
Vielleicht nur so als Tipp zur "Ursachenbekämpfung" ohne zusätzlichen Dummy; den musst Du ja sonst auch wieder manuell zurücksetzen.   ;)
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

chq

#9
Zitat von: DeeSPe am 06 April 2017, 23:54:28Statt des structure solltest Du lieber RESIDENTS verwenden.

Für die Leute, die noch in den Tiefen des Forums nach zweckdienlichen Lösungen für Ihre Probleme suchen, hier eine Begründung für die o.a. Aussage:

Bei structure wird die Anwesenheit sofort als absent angezeigt, auch wenn das PRESENCE-Device lediglich ein maybe absent übermittelte. RESIDENTS verweilt so lange auf present, bis auch tatsächlich ein absent seitens des PRESENCE-Devices signalisiert wurde. Die Umschaltung von absent auf present funktioniert ebenso schnell, wie beim structure. Somit komme auch ich zu dem Fazit, dass RESIDENTS die bessere Wahl ist.

Welche wahren Vorteile sich sonst noch durch die Verwendung von RESIDENTS ergeben, kann ich (noch) nicht sagen.
Vielleicht möchte ein fortgeschrittener Benutzer hierzu ein paar Zeilen schreiben. :)

Gruß Chris
So einfach wie möglich, so kompliziert wie nötig

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MadMax-FHEM

ZitatDa sich Handys immer wieder mal aus dem WLAN verabschieden, möchte ich nun noch folgenden Dummy in diese "structure" übernehmen.

Oder hier mal schauen: https://forum.fhem.de/index.php/topic,76342.msg682218.html#msg682218

Hatte ähnliche Probleme...
...jetzt nicht mehr... :)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

betateilchen

lustig, was die Leute alles mit dummies anstellen.

In meiner FHEM Installation gibt es aktuell 242 devices, und keines davon ist vom Typ "dummy".


Count: 242 devices for devspec TYPE=.*

Count: 0 devices for devspec TYPE=dummy


Und trotzdem funktioniert alles, wie es soll. Mache ich irgendwas falsch?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!