WebViewControl userReadings funktioniert nicht?

Begonnen von roman1528, 20 Dezember 2015, 19:58:09

Vorheriges Thema - Nächstes Thema

roman1528

Moin.

Für's einfache Auslesen in FTUI der "powerPlugged" und "powerLevel" Readings aus einem Reading im WebViewControl-Modul habe ich mir ein userReading angelegt:

attr WebViewDevice userReadings power {ReadingsVal("$name","powerLevel","0"); ReadingsVal("$name","powerPlugged","false");}

Funktioniert allerdings nicht... Liegt es an mir oder wird userReadings hier nicht unterstützt?

Das Attr stateFormat wäre ja noch einfacher... aber das kann man nicht anlegen.

Danke.

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

CoolTux

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

roman1528

Zitat von: CoolTux am 20 Dezember 2015, 20:01:06
Teste mal ob nur eines erstmal geht.

Geht leider auch nicht...

Es wird kein neues Reading angelegt. Auch nicht wenn eine Änderung des AusgangsReadings erfolgt.
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

CoolTux


attr WebViewDevice userReadings power { ReadingsVal( "$name", "powerLevel", "0" ), ReadingsVal( "$name", "powerPlugged", "false" ) }


Teste mal so, wenn nicht dann teste mal mit nur einem. KEIN Semikolon bitte
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

roman1528

Zitat von: CoolTux am 20 Dezember 2015, 20:17:15

attr WebViewDevice userReadings power { ReadingsVal( "$name", "powerLevel", "0" ), ReadingsVal( "$name", "powerPlugged", "false" ) }

Teste mal so, wenn nicht dann teste mal mit nur einem. KEIN Semikolon bitte

Leider auch hier nicht... Weder einzeln noch zusammen -.- ich hatte auch schon die Variante:
attr WebViewDevice userReadings power {.ReadingsVal("$name","powerLevel","0")." ".ReadingsVal("$name","powerPlugged","false")}
soll geholfen haben...
http://forum.fhem.de/index.php/topic,43131.msg351185.html#msg351185
geht bei mir aber auch nicht... weder einzeln noch zusammen
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

marvin78

#5
Was genau soll hier überhaupt passieren? Du möchtest 2 Readings in einem userReading unterbringen? Bei den Verianten oben (auch von CoolTux) sollten Fehler im Log auftauchen. Mal da rein gesehen? CommandRef zu userReading gelesen?

attr WebViewDevice userReadings power {ReadingsVal( "$name", "powerLevel", "0" )."% - ".ReadingsVal( "$name", "powerPlugged", "false" )}

Würde ein Reading erzeugen, das so aussieht

70% - true

oder ähnliches.

Ach und "geht nicht" ist keine hinreichende Fehlerbeschreibung!

Edit: bei der Verwendung ist es wichtig, dass vom Device events erzeugt werden. Noch besser wäre es, wenn powerLevel oder powerPlugged events erzeugen und man eines von diesen gemäß commandref als Trigger verwendet.

roman1528

#6
Zitat von: marvin78 am 20 Dezember 2015, 20:25:54
Was genau soll hier überhaupt passieren? Du möchtest 2 Readings in einem userReading unterbringen? Bei den Verianten oben (auch von CoolTux) sollten Fehler im Log auftauchen. Mal da rein gesehen? CommandRef zu userReading gelesen?

attr WebViewDevice userReadings power {ReadingsVal( "$name", "powerLevel", "0" )."% - ".ReadingsVal( "$name", "powerPlugged", "false" )}

Würde ein Reading erzeugen, das so aussieht

70% - true

oder ähnliches.

Ach und "geht nicht" ist keine hinreichende Fehlerbeschreibung!

Edit: bei der Verwendung ist es wichtig, dass vom Device events erzeugt werden. Noch besser wäre es, wenn powerLevel oder powerPlugged events erzeugen und man eines von diesen gemäß commandref als Trigger verwendet.

Keine Log-Einträge.. das wurmt mich ja so... sonst wüsste ich ob ich einen Fehler in der Syntax hab...

Das ist natürlich sehr gut möglich, dass WebViewControl keine Events erzeugt... ich teste mal:


attr WebViewDevice userReadings power {ReadingsVal( "$name", "powerLevel", "0" )."% - ".ReadingsVal( "$name", "powerPlugged", "false" )}
attr WebViewDevice event-on-change-reading powerLevel,powerPlugged


EDIT:
schade.....
TAB3: unknown attribute event-on-change-reading. Type 'attr TAB3 ?' for a detailed list.
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

marvin78

Doch. Es erzeugt generell Events. Allerdings kann man diese natürlich raus konfigurieren.

roman1528

Also es tut mir leid... auch bei deiner Variante passiert nichts... kein neues Reading.

Auch nicht mit power:powerLevel als trigger....

Und immernoch keine Einträge im Log
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

marvin78

Eine Sache habe ich übersehen:

attr WebViewDevice userReadings power {ReadingsVal($name,"powerLevel",0)."% - ".ReadingsVal($name,"powerPlugged","false")}

Finde den Unterschied ;)

Andernfall erzeuge das Reading einmal mit setreading und schaue, ob es dann verändert wird.

roman1528

Das:
setreading WebViewDevice power {ReadingsVal($name,"powerLevel",0)." ".ReadingsVal($name,"powerPlugged","false")}

klappt super... Die aktuellen Werte werden übernommen...

Aber nicht aktualisiert....

Und den unterschied entdeckt. 0 ist int aber vorher als string geschrieben "0" .... genau wie $name
klappt überall anders aber auch wenns in "" ist.
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

marvin78

Mach mal ein List von deinem WebViewDevice und poste es hier in Code Tags.

roman1528

Zitat von: marvin78 am 20 Dezember 2015, 20:53:06
Mach mal ein List von deinem WebViewDevice und poste es hier in Code Tags.


Internals:
   DEF        TAB3
   NAME       TAB3
   NR         86
   STATE      powerLevel=49, powerPlugged=false
   TYPE       webViewControl
   appID      TAB3
   lastCmd    screenBrightness 255
   Readings:
     2015-12-20 20:49:33   power           52 false
     2015-12-20 20:55:18   powerLevel      49
     2015-12-20 20:55:18   powerPlugged    false
     2015-12-20 20:55:18   state           powerLevel=49, powerPlugged=false
     2015-12-18 14:41:53   voiceRecognitionLastError 6:No speech input
     2015-12-14 14:51:45   voiceRecognitionLastResult LED Stripe im Flur aus
Attributes:
   group      Display
   room       Büro
   userReadings power {ReadingsVal($name,"powerLevel",0)." ".ReadingsVal("$name","powerPlugged","false")}
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

marvin78

Naja. Schau mal hin. Stichwort $name und Anführungszeichen.

Wenn das alles nichts bringt, teste folgendes:

power:powerLevel {return ReadingsVal($name,"powerLevel",0)." ".ReadingsVal($name,"powerPlugged","false")}

roman1528

Zitat von: marvin78 am 20 Dezember 2015, 21:00:52
Naja. Schau mal hin. Stichwort $name und Anführungszeichen.

Sorry.. da hat ich nochmal getestet...

auch mit return gibt keine Änderung. Auch nicht nach neustart.
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik