MQTT und SYSSTAT

Begonnen von Ruebezahl, 10 März 2016, 18:55:12

Vorheriges Thema - Nächstes Thema

Ruebezahl

Hallo,

ich möchte per MQTT die Daten von SYSSTAT an einen Broker schicken. Läuft auch ganz prima, aber die Werte von 'state' werden einfach nicht weitergereicht.
Meine Definitionen sind:
Zitat
define XX_Sysstate SYSSTAT 120 3600
attr   XX_Sysstate room Server

und bei MQTT
Zitat
define MQ_Sysstate              MQTT_Bridge XX_Sysstate
attr   MQ_Sysstate              room MQTT
attr   MQ_Sysstate              publishReading_load FHEM/Sysstate/Bana01/load
attr   MQ_Sysstate              publishReading_state FHEM/Sysstate/Bana01/state

Kann es daran liegen, das in den XX_Sysstate Readings für 'state' Blanks sind???

Viele Grüße

eiten

Hallo Ruebezahl,

ich verstehe nicht ganz... wenn für den state keinen Wert gesetzt wird, wie soll der dann weitergereicht werden?

Gruss, Edi

eiten

Ah, hast Du per Zufall Jessie am Start? Falls bei den Internals nicht
HAS_Sys::Statistics 1
steht, hilft evtl. ein
sudo cpanm Sys::Statistics::Linux::LoadAVG

Gruss, Edi

Ruebezahl

Also ich habe bei 'state' schon Werte in dem SYSSTAT, nur scheint die MQTT_Bridge damit nicht klar zu kommen. Habe mal den verbose Level auf 5 gesetzt und das ist dabei raus gekommen:
Zitat
2016.03.12 07:50:32 5: Notify loop for XX_Sysstate 0.09 0.16 0.11
2016.03.12 07:50:32 5: Notify for XX_Sysstate
2016.03.12 07:50:32 5: 0.09 0.16 0.11, '0.09 0.16 0.11', ''
2016.03.12 07:50:32 5: load: 0.09, 'load', '0.09'
2016.03.12 07:50:32 5: MQTT MQTTDevice message sent: Publish/at-most-once FHEM/Sysstate/Bana01/load
  30 2e 30 39                                      0.09
2016.03.12 07:50:32 5: SW: 301f00194648454d2f53797373746174652f42616e6130312f6c6f6164302e3039
2016.03.12 07:50:32 5: Triggering MQ_Sysstate (1 changes)
2016.03.12 07:50:32 5: Notify loop for MQ_Sysstate transmission-state: outgoing publish sent
2016.03.12 07:50:32 5: Notify from Device: MQ_Sysstate recieved
2016.03.12 07:50:32 5: Notify from Device: XX_Sysstate recieved
2016.03.12 07:50:35 5: MQTT MQTTDevice message sent: PingReq/at-most-once
2016.03.12 07:50:35 5: SW: c000
2016.03.12 07:50:35 5: MQTT MQTTDevice message received: PingResp/at-most-once
2016.03.12 07:50:35 5: Triggering MQTTDevice (1 changes)
2016.03.12 07:50:35 5: Notify loop for MQTTDevice connection: active
2016.03.12 07:50:35 5: Notify from Device: MQTTDevice recieved

Die Zeile 0.09 0.16 0.11, '0.09 0.16 0.11', '' ist ja das Reading von SYSSTATE.state.
Ich habe dieses Verhalten auch beim state von einer HM-OC3 Wetterstation gesehen. Alle Readings wurden übertragen, nur state nicht und die einzige Gemeinsamkeit zum state von SYSSTAT sind die Blanks im Wert.

eiten

#4
Ach so meinst Du das. Ja, das kann ich bestätigen, ich habs mit dem Clima-Channel eines    
HM-CC-RT-DN versucht, der gibt z.B. T: 18.8 desired: 20.0 valve: 100 aus. Der State wird über MQTT nicht published. Definier ich ein publishReading_measured-temp, so wird die measured-temp published. Da scheint mir noch ein Käfer entweder in MQTT_BRIDGE oder MQTT zu stecken.

Gruss, Edi

Ruebezahl

Nach ein wenig Recherche mit meinen geringen Kenntnissen in dem für mich unübersichtlichen Code in fhem.pl, bin ich der Meinung, das der Fehler eher in fhem.pl zu suchen ist und zwar bei der Behandlung von State, denn fhem.pl liefert an MQTT bereits den nicht verwendungsfähigen Wert und nicht wie erwartet ein Wert der aus 'state' und dem eigentlichen Attribut besteht. Hat irgendwas mit $HASH->{CHANGED} zu tun, aber weiter wollte ich mich dann nicht mehr einlesen und habe dann aufgehört noch vor der Abarbeitung von DoTrigger() zu suchen.

Nun muss ich nur mal jemanden finden, der sich dieser Sache annimmt und wie ich das den Chefentwicklern nahe bringen kann. :-\


eiten

Hm... muss ich mich heute Abend mal reinwühlen. Ich habe ntruchsess, dem Entwickler der MQTT* Module, mal eine PM geschrieben.

justme1968

nein. es liegt nicht an fhem.pl.

aus historischen gründen wird beim event für das state reading der readings name nicht mit gesendet.

das modul das events verarbeitet muss das berücksichtigen. das geht unter anderem in dem man nicht mehr direkt auf CHANGED zugreift sondern  den hier: http://www.fhemwiki.de/wiki/DevelopmentModuleIntro#X_Notify beschriebenen mechanismus verwendet.

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

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