[gelöst] global:INITIALIZED zu früh seit Update heute?

Begonnen von DeeSPe, 21 April 2017, 11:22:48

Vorheriges Thema - Nächstes Thema

klaus.schauer

Zitat von: Loredo am 21 April 2017, 23:39:40
Ohne, denn es geht rein um die einzelne Device-Instanz selbst. Warum brauche ich da den Modulnamen davor?
Wir reden hier ja ohnehin davon, dass per NOTIFYDEV eingeschränkt wird, welche Events ich erhalte, oder nicht?

Nein, in EnOcean werden alle Events überwacht, da dort auch bei Bedarf Events von Referenzdevices anderer Module ausgewertet werden müssen, z. B. Temperaturwerte von Raumthermostaten anderer Protokollfamilien. 

rudolfkoenig

Zitatin EnOcean werden alle Events überwacht, da dort auch bei Bedarf Events von Referenzdevices anderer Module ausgewertet werden müssen
Ich hoffe aber stark, dass das erstens optional und zweitens per NOTIFYDEV (bzw. notifyRegexpChanged) eingeschraenkt auf das per Befehl/Attribut/etc vom Benutzer spezifizierte Geraet ist. Meiner Ansicht nach waere aber sowas (Koppelung mehrerer Geraete) trotzdem nicht die Aufgabe von einem Modul wie EnOcean. Falls ich was nicht verstehe, bitte mich aufzuklaeren.

klaus.schauer

Zitat von: rudolfkoenig am 22 April 2017, 08:39:39
Ich hoffe aber stark, dass das erstens optional und zweitens per NOTIFYDEV (bzw. notifyRegexpChanged) eingeschraenkt auf das per Befehl/Attribut/etc vom Benutzer spezifizierte Geraet ist. Meiner Ansicht nach waere aber sowas (Koppelung mehrerer Geraete) trotzdem nicht die Aufgabe von einem Modul wie EnOcean. Falls ich was nicht verstehe, bitte mich aufzuklaeren.
Nein, es ist nicht eingeschränkt. Bisher habe ich dafür keine brauchbare Lösung gefunden.

Was Aufgabe eines Modules wäre und was übergreifende Routinen besser übernehmen könnten, darüber wird hier ununterbrochen meist ohne konkretes Ergebnis diskutiert. Ich beteilige mich nicht mehr an diesen fruchtlosen Debatten.

Ich habe jedenfalls keine Ambitionen einem Anwender z. B. zu erklären, dass er einen Temperaturwert, den er mit einem Homematik-Sensor erfasst, nicht oder nur umständlich über ein Notify zur Steuerung eines EnOcean-Heizkörperventils verwenden kann.

rudolfkoenig

Aber genau so ein umstaendliches notify unterscheidet FHEM von einem zusammengeloetetes Fertiggeraet.

betateilchen

Zitat von: Loredo am 21 April 2017, 23:39:40
Ohne, denn es geht rein um die einzelne Device-Instanz selbst. Warum brauche ich da den Modulnamen davor?
Wir reden hier ja ohnehin davon, dass per NOTIFYDEV eingeschränkt wird, welche Events ich erhalte, oder nicht?

Nein. Du solltest einfach mal über den Tellerrand Deiner eigenen Module hinausschauen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

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

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Wir haben jetzt
global:INITIALIZED
global:<TYPE> INITIALIZED
global:INITIALIZED <device>


Ich finde das ist "unordentlich".

Vorschlag:

global:INITIALIZED
global:INITIALIZED <TYPE>
global:INITIALIZED <TYPE> <device>

justme1968

ja. ich finde auch das diese version aufgeräumter ist.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

ja, aufgeräumt ist das wohl.

Allerdings verstehe ich nicht, warum da ein "global" am Anfang stehen soll, denn ein von RESIDENTS erzeugter event hat doch überhaupt nix mit dem device "global" zu tun.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

#40
bei den letzen beiden könnte man auch den TYPE nach vorne an stelle von global ziehen. also so:
Zitatglobal:INITIALIZED
<TYPE>:INITIALIZED
<TYPE>:INITIALIZED <device>

diese events kommen dann aber nicht mehr durch den longpoll filter wenn man diesen eingeschränkt hat. ich weiß nicht ob das relevant ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Ein Event muss an einem Geraet haengen, ein DoTrigger(<TYPE>,"INITIALIZED") waere also nicht moeglich. Neuer Vorschlag:
global:INITIALIZED
global:INITIALIZED <TYPE>
<device>:INITIALIZED

justme1968

<device>:INITIALIZEDist nicht gut da man dann den device namen kennen muss oder jedes mal den type nachschauen muss.

dann lieber den ursprünglichen vorschlag:global:INITIALIZED
global:INITIALIZED <TYPE>
global:INITIALIZED <TYPE> <device>
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

DeeSPe

Ich finde die Ideen mit global:INITIALIZED ehrlich gesagt nicht gut.
Es können ungewünschte Nebenwirkungen auftreten wenn in bestehenden Modulen nur auf /^INITIALIZED/ statt auf /^INITIALIZED$/ geprüft wird.
Ich finde global:INITIALIZED sollte nicht angetastet werden.
Statt dessen finde ich persönlich
<device/type>:INITIALIZED
besser.

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

justme1968

was würde dagegen sprechen events von <TYPE> zu erlauben?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968