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^^
Teste mal ob nur eines erstmal geht.
Grüše
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.
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
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 (http://forum.fhem.de/index.php/topic,43131.msg351185.html#msg351185)
geht bei mir aber auch nicht... weder einzeln noch zusammen
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.
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.
Doch. Es erzeugt generell Events. Allerdings kann man diese natürlich raus konfigurieren.
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
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.
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.
Mach mal ein List von deinem WebViewDevice und poste es hier in Code Tags.
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")}
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")}
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.
Ich frage mich gerade, was bei dir nicht stimmt. Dass du stateFormat nicht anlegen kannst, ist schon seltsam. Hast du es mal versucht (über die Kommandozeile)?
attr WebViewDevice stateFormat power% - powerPlugged
Wie alt ist dein FHEM?
Zitat von: marvin78 am 21 Dezember 2015, 08:06:47
Ich frage mich gerade, was bei dir nicht stimmt. Dass du stateFormat nicht anlegen kannst, ist schon seltsam. Hast du es mal versucht (über die Kommandozeile)?
attr WebViewDevice stateFormat power% - powerPlugged
Wie alt ist dein FHEM?
Kommandozeile:
attr TAB3 stateFormat powerLevel powerPlugged
Antwort:
TAB3: unknown attribute stateFormat. Type 'attr TAB3 ?' for a detailed list.
FHEM: letztes Update gestern Nachmittag.
Habe auch schon mal versucht stateFormat über userattr anzulegen. kann es dann in der dropdownliste auswählen. dann natürlich gesetzt (wie oben). Nach dem setzen des attr zeigt er mir dann den STATE so an wie ich es gern hätte. Allerdings nur bis zur nächsten aktualisierung des Moduls (powerLevel ändert sich) Dann sieht der STATE wieder so aus:
STATE powerLevel=64 powerPlugged=false
Ich bin geneigt, zu sagen, dass du hier mal im Forum für WebViewControl anfragst.
Funktionieren solche Dinge bei dir mit anderen Devices. Also dummy und/oder Homematic/FS20 etc.?
Ja auf jeden Fall.
attr gds userReadings alerts { ReadingsVal( "$name", "a_valid", "0" ); }, alertsCount { ReadingsVal( "$name", "a_count", "0"); }
Ich werd mich mal daran setzen. Danke dir trotzdem für alles