Longoll funktioniert bei PRESENCE nicht in Raumansicht

Begonnen von DeeSPe, 12 August 2021, 17:13:54

Vorheriges Thema - Nächstes Thema

DeeSPe

Hallo Rudi,

ehrlich gesagt weiß ich nicht ob es wirklich an FHEMWEB liegt, da ich kein anderes Frontend benutze.
Evtl. liegt es auch am PRESENCE Modul selbst!?

Mir ist schon öfter aufgefallen dass Longpoll für PRESENCE Geräte in der Raumansicht nicht funktioniert. Nun nervt es mich aber endgültig. In der Device Ansicht funktioniert Longpoll.
Hier mal eine meiner DEFs:
defmod PRESENCE2_rr_Dan PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5222 10 30
attr PRESENCE2_rr_Dan DbLogExclude .*
attr PRESENCE2_rr_Dan absenceThreshold 6
attr PRESENCE2_rr_Dan alias Handy Dan
attr PRESENCE2_rr_Dan devStateIcon absent:motion_detector\
present:people_sensor@lightgreen\
maybe.absent:motion_detector@orange\
disabled:message_presence_disabled@yellow
attr PRESENCE2_rr_Dan event-on-change-reading presence,state
attr PRESENCE2_rr_Dan group 3. Bluetooth
attr PRESENCE2_rr_Dan icon it_smartphone
attr PRESENCE2_rr_Dan room Anwesenheit,Module->PRESENCE
attr PRESENCE2_rr_Dan sortby 04
attr PRESENCE2_rr_Dan verbose 2


Was kann ich noch an Informationen liefern um dem auf die Spur zu kommen?

Gruß
Dan

P.S. Ich nutze den Flex Style, habe aber auch F18 ausprobiert und dort das selbe Verhalten.
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

rudolfkoenig

Oeffne die JavaScript-Console, erzeuge eine Aenderung, und pruefe, was in der Console erscheint. Fuer jedes Event muessten mehrere Zeilen, die mit [ anfangen, erscheinen.

Du kannst auch testen, ob es mit "attr FHEMWEB longpoll websocket" die gleichen Probleme gibt (oder "attr global longpoll 1", wenn Du bereits Websocket verwendest.) Ob longpoll (aka HTTP) oder websocket verwendet wird, steht in der JavaScript Konsole ganz oben, in der Art
17:30:01.413 Inform-channel opened (HTTP) with filter room=XXX

bzw.
17:33:17.331 Inform-channel opened (websocket) with filter ZZZ


DeeSPe

#2
Ich hatte schon "websocket" drin, habe es nun aber auch mit "1" probiert.
Das Verhalten ist identisch.
In der Device Ansicht kommt:
Zitat17:44:19.501 Rcvd: ["PRESENCE2_rr_Dan-state","present","present"]
17:44:19.503 Rcvd: ["PRESENCE2_rr_Dan-state-ts","2021-08-12 17:44:19","2021-08-12 17:44:19"]
17:44:19.506 Rcvd: ["PRESENCE2_rr_Dan-presence","present","present"]
17:44:19.508 Rcvd: ["PRESENCE2_rr_Dan-presence-ts","2021-08-12 17:44:19","2021-08-12 17:44:19"]

In der Raumansicht kommt nichts.

Durch Zufall hat gerade in der Raumansicht ein anderes PRESENCE Device umgeschaltet und da funktionierte Longpoll:
Zitat17:48:27.950 Rcvd: ["PRESENCE_wz_TV-state","absent","absent"]
17:48:27.951 Rcvd: ["PRESENCE_wz_TV-state-ts","2021-08-12 17:48:27","2021-08-12 17:48:27"]
17:48:27.952 Rcvd: ["PRESENCE_wz_TV-presence","absent","absent"]
17:48:27.953 Rcvd: ["PRESENCE_wz_TV-presence-ts","2021-08-12 17:48:27","2021-08-12 17:48:27"]

Hier mal die DEF vom dem Gerät:
defmod PRESENCE_wz_TV PRESENCE lan-ping 192.168.2.55
attr PRESENCE_wz_TV DbLogExclude .*
attr PRESENCE_wz_TV alias Sony TV
attr PRESENCE_wz_TV devStateIcon absent:motion_detector\
present:people_sensor@lightgreen\
maybe.absent:motion_detector@orange\
disabled:message_presence_disabled@yellow
attr PRESENCE_wz_TV event-on-change-reading .*
attr PRESENCE_wz_TV icon it_television
attr PRESENCE_wz_TV room Module->PRESENCE,Wohnzimmer
attr PRESENCE_wz_TV verbose 2


Ich verstehe es nicht.

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

rudolfkoenig

Verstehen tu ich es auch nicht, ich wundere mich nur, wo das room Attribut geblieben ist.
Und warum alle even-on-* setzen muessen. Funktioniert es denn ohne? Und mit dem passenden room Attribut?

DeeSPe

Das room Attribut lasse ich beim Posten meiner DEFs eigentlich immer weg, da das jeder individuell setzt und es doch auch nichts zur eigentlichen Sache beiträgt.
Habe den Rest der DEFs mal oben ergänzt.
.* bei event-on-change-reading zu setzen ist einfach bequem, gerade wenn es nur 3 Readings gibt und man aber wirklich nur bei Änderung ein Event haben möchte.
Bei dem nicht funktionierenden Device ist event-on-.... richtig gesetzt. Und bei dem funktionierenden auf .* .

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

rudolfkoenig

Kannst Du noch bitte Events von den beiden Geraeten zeigen?

DeeSPe

Zitat von: rudolfkoenig am 13 August 2021, 11:41:53
Kannst Du noch bitte Events von den beiden Geraeten zeigen?
Die werde ich heute Abend liefern.

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

rudolfkoenig

Ich glaube die Events sind ueberfluessig.

Ich habe jetzt ein Test-Fhem mit den beiden Definitionen angelegt, den Raum Module->Presence geoeffnet, und folgende Befehle abgesetzt:
setstate PRESENCE2_rr_Dan absent; trigger PRESENCE2_rr_Dan absent
setstate PRESENCE2_rr_Dan present; trigger PRESENCE2_rr_Dan present

Die Icons schalten sofort um, auch wenn ich die Befehle wiederhole.
Etwas einfacher ist "set PRESENCE2_rr_Dan inactive", dann wird auch sofort geschaltet.
Das Gleiche passiert auch mit PRESENCE_wz_TV.

Koenntest du diese Experimente auch durchfuehren?


DeeSPe

Zitat von: rudolfkoenig am 13 August 2021, 15:58:09
Koenntest du diese Experimente auch durchfuehren?

Das habe ich soeben getan.
Bei PRESENCE2_rr_Dan weiterhin keine Longpoll Aktualisierung. Bei PRESENCE_wz_TV schon.

Danke für's Testen Rudi, da werde ich wohl meine Installation nächste Woche noch etwas weiter inspizieren müssen um der Sache auf die Spur zu kommen.

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 nun noch eine Weile analysiert und herausgefunden dass das Problem der Longpoll Aktualisierung mit den PRESENCE Devices nur besteht wenn die Devices in mein eigenes HOMEMODE Modul eingebunden sind. Ich verstehe nur absolut nicht warum, selbst mit detaillierter Code Analyse nicht. Die Events werden nicht verändert und Longpoll funktioniert auch in der Device Ansicht, nur nicht in der Raumansicht.
Vielleicht magst Du mal auf den Code schauen? Ab Zeile 371 bis 431 ist der Code für die PRESENCE Erkennung.

Danke im Voraus und bitte entschuldige meine Verdächtigungen der anderen Module.

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

rudolfkoenig

Sorry, nach ueberfliegen der Zeilen sehe ich das Problem nicht.
Ich wuerde an deiner Stelle "attr global verbose 5" setzen, und schauen, bis wohin die Events kommen.

DeeSPe

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