2 x Gtag Anwesenheit und Steuerung

Begonnen von To, 21 März 2017, 11:55:00

Vorheriges Thema - Nächstes Thema

To

Hallo zusammen,

bin noch Anfänger was Sachen Fhem und Perl betrifft, deswegen wende ich mich mit meinen Frage mal an euch Profis.

Ich hatte vor, das wenn die Anwesenheit von  2 Gtags erkannt wird sich die Homematic Heizungsthermostate nach vorgegebenen Grad Celsius einstellen. ( Das soll mal so sein)

Bild 1.1: Übersicht
Bild 2   : Anwesenheit_Gesamt
Bild 3   : Anwesenheit_ All

Bisheriges vorgehen:

1: 2 x Gtags angelegt. Diese werden auch erkannt present/ absent ( Anwesenheit J & Anwesenheit T). Diese werden im Moment zu Testzwecken alle 10 sec abgefragt.

2: structure ( Anwesenheit_Gesamt ) angelegt. Diese erkennt das present / abesent der Gtags und schaltet wenn 1 Person da ist auf present, wenn beide Personen nicht da sind natürlich auf absent. Dieses hab ich gemacht das ich nur 2 und nicht 4  present/absent Zustände habe.

3: Notify ( Anwesenheit_All ) angelegt. Dieses soll dann mal die Heizungen schalten.
Momentan soll nur bei present ein Licht an bzw. bei absent das Licht aus geschaltet werden.


Anwesenheit_Gesamt:.*   [Ich denke hier liegt mein Fehler :.* ]
{
if (ReadingsVal("Anwesenheit_Gesamt","state","absent") eq "present")
   {
      {fhem ('set Licht_Kueche on')}
     
    }
    elsif (ReadingsVal("Anwesenheit_Gesamt","state","absent") eq "absent")
   {
      {fhem ('set Licht_Kueche off')}
   
    }
}


dies funktioniert auch soweit das Licht wird geschaltet . Das Problem ist aber, das dass Licht bei jedem mal wo erkannt wird das ein Gtag present ist (also alle 10 sec)  das Licht erneut eingeschaltet wird. Wie verwirkliche ich es, das dass Licht nur einmal schaltet?

Ich bedanke mich schon mal für eure Hilfe.

DeeSPe

Warum beschäftigst Du Dich nicht erst einmal mit RESIDENTS, ROOMMATE und GUEST?
Danach evtl. zur allgemeinen Automatisierung HOMEMODE testen.

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

To

Hallo Dan

danke für deine Antwort bzw Verlinkung. Werde mir das mal anschauen und versuchen es zu verstehen.
Wusste bis jetzt leider nichts von HOMEMODE . Hatte auch nichts bei der Benutzung der Suchmaschine meines Vertrauens gefunden.  ???

Danke

DeeSPe

HOMEMODE ist im Prinzip nur die Erweiterung für RESIDENTS.
Mit RESIDENTS solltest Du beginnen und Deine Bewohner damit abbilden.
Der Rest findet sich dann.

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

Otto123

Zitat von: To am 21 März 2017, 11:55:00
Das Problem ist aber, das dass Licht bei jedem mal wo erkannt wird das ein Gtag present ist (also alle 10 sec)  das Licht erneut eingeschaltet wird. Wie verwirkliche ich es, das dass Licht nur einmal schaltet?
Hi,

Das Problem liegt einfach daran, dass jedesmal ein Event erzeugt wird. Wenn Du bei Deine gtags das attribute event-on-change-reading auf state setzt ist alles gut :)

Ist ein Punkt den Du immer wieder brauchen wirst, egal ob es um Anwesenheit  und Bewohner geht oder um Temperaturen die geloggt werden.
Ich hatte mir hier mal grundlegende Gedanken gemacht. Wichtig ist, dass Du sauber zur einzelnen Person kommst. Danach kannst Du zu Fuß oder mit RESIDENTS & Co weiter machen

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

To

@ Dan

danke ich werde mir das alles mal in ruhe durch lesen und verdauen für Anfänger eine schwere Mahlzeit :-)
vllt kann ich es damit alles sauberer und schöner Abbilden. ( Hatte bei dem ganzen etwas Hilfe von einem Kumpel der wesentlich mehr Ahnung hat als ich er Programmiert aber mit JAVA. Perl ist auch nicht so ganz seine Welt.

@ Otto

Danke für die Antwort. An das event-on-change-reading hatte ich auch gedacht, wollte es aber in structure der ja die Anwesenheit abfragt einbauen.
Das an die Gtags Attribute anzuhängen bin ich natürlich nicht gekommen  ::)

Otto123

Ja vielleicht ist das am Ende egal an welcher Stelle, aber warum soll an der Quelle jedesmal ein Event erzeugt werden, wenn man den gar nicht wissen will? Also das ist mein Ansatz -> quasi Strom sparen  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

To

#7
Hab es direkt umgesetzt und Teste gerade und es scheint wunderbar zu funktioniern :-)  ( Happy )

Also habe jetzt bei beiden Personen event-on-change-reading state
und in der structure  event-on-change-reading state
Hab jetzt mal verschiedene szenarien ausprobiert und es geht so wie ich es mir erhofft hatte.

Jetzt muss ich noch schauen wie ich dann die heizungsthermostat anspreche und diese wechseln.

Otto123

Wenn Perl nicht so dein Ding ist, schau Dir auch DOIF an.  Da geht gerade für Deinen Zweck wahrscheinlich vieles relativ simpel.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

Zitat von: To am 21 März 2017, 12:49:38
Hab es direkt umgesetzt und Teste gerade und es scheint wunderbar zu funktioniern :-)  ( Happy )

Also habe jetzt bei beiden Personen event-on-change-reading state
und in der structure  event-on-change-reading state
Hab jetzt mal verschiedene szenarien ausprobiert und es geht so wie ich es mir erhofft hatte.

Jetzt muss ich noch schauen wie ich dann die heizungsthermostat anspreche und diese wechseln.

Du machst da was doppelt.
Kurzer Exkurs. Attribute die Du für eine Strukture setzt, werden automatisch an die Mitglieder der Struktur vererbt. Also entweder das Attribut in der Strukture rausnehmen oder drin lassen und bei den Mitgliedern rausnehmen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

To

Danke CoolTux

hab ich wieder was gelernt

ZitatAttribute die Du für eine Strukture setzt, werden automatisch an die Mitglieder der Struktur vererbt

war mir leider nicht bekannt.  Ist dies irgendwie ersichtlich, das dass Attribute an die Mitglieder vererbt wird ?


CoolTux

Zitat von: To am 21 März 2017, 13:38:20
Danke CoolTux

hab ich wieder was gelernt

war mir leider nicht bekannt.  Ist dies irgendwie ersichtlich, das dass Attribute an die Mitglieder vererbt wird ?

Hab die Info nie nachgelesen. Hatte aber mal ein Problem das meine Attribute für Geräte einfach innerhalb des Startprozesses geändert wurden. Am Ende hat mir Rudi erzählt das dies an meiner Struktur und an den Attributen in der Struktur liegen.
Betrifft auch nicht alle Attribute. Room zum Beispiel oder Group klappt super. Ich hatte das Problem aber genau bei event-on-change-reading.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

To

Danke CoolTux gut zu wissen :-)

Werde mich dann mal an DOIF , HOMEMODE & RESIDENTS  probieren.

Danke @ all für die Hilfe