update readingsGroup

Begonnen von justme1968, 03 September 2013, 22:59:01

Vorheriges Thema - Nächstes Thema

justme1968

das battery muss in anführungszeichen. das ist ein string.

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

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

Arek

Danke! Beide Varianten funktionieren. Der Fehler lag ganz woanders. Bitte nicht nachfragen...  8)

Bei
<{$DEVICE=~s/_Climate/_Thermostat/;ReadingsVal($DEVICE,"battery","0")}>
hat
attr Heizungswerte valueIcon {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red'}
nicht funktioniert. Wieso?

Kann man ein Dropdown erstellen zur Auswahl des Modus? Ich möchte folgende Modi auswählen: auto, manu, boost. Der Modus wird über das Reading "mode" ausgelesen und gesetzt über "set xxx controlMode auto|manu|boost.

Gruß Arek

justme1968

das vakueIcon mapping her nur für 'echte' readings. für die <{...}> variante ist es am besten direkt den icon namen mit vorangestelltem % zurück zu liefern.

das sollte mit etwas in dieser art gehen:

commands { controlMode => 'controlMode:auto,manu,boost'}

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

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

Arek

#63
Zitat von: justme1968 am 28 Februar 2014, 15:30:56
das vakueIcon mapping her nur für 'echte' readings. für die <{...}> variante ist es am besten direkt den icon namen mit vorangestelltem % zurück zu liefern.

Wo muss das denn rein? Meine Definition sieht jetzt folgendermaßen aus:
<{$DEVICE=~s/_Climate/_Thermostat/;ReadingsVal($DEVICE,"battery","0")}>

Zitat von: justme1968 am 28 Februar 2014, 15:30:56
das sollte mit etwas in dieser art gehen:

commands { controlMode => 'controlMode:auto,manu,boost'}

Das Dropdown ist vorhanden und das setzen von manu und boost funktioniert auch, auto jedoch nicht, weil dieser Wert immer aktiv ist. Jetzt muss das Dropdown den aktiven Modus aus dem Reading lesen und dementsprechend setzen so dass, wenn der Modus manu ist, auch manu im Dropdown aktiv ist und auto gestellt werden kann.
Ich habe es über
userReadings
controlMode { ReadingsVal("WZ_Heizung_Climate","mode",0);;}

versucht, aber leider ohne Erfolg

justme1968

versuch es so:<{$DEVICE=~s/_Climate/_Thermostat/;(ReadingsVal($DEVICE,"battery","0")eq"ok"?"%batterie@lightgreen":"batterie@red"}>

um das drop down richtig zu initialisieren ist auf jeden fall ein reading nötig das genau so heisst wie das set commando. das mit dem userReading ist also eigentlich richtig. gibt es das reading auch wirklich? im richtigen device?

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

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

Arek

Zitat von: justme1968 am 28 Februar 2014, 16:23:34
versuch es so:<{$DEVICE=~s/_Climate/_Thermostat/;(ReadingsVal($DEVICE,"battery","0")eq"ok"?"%batterie@lightgreen":"batterie@red"}>
Fehlermeldung:
2014.02.28 21:30:39 3: WZ_Heizung_Climate: <{$DEVICE=~s/_Climate/_Thermostat/;(ReadingsVal($DEVICE,"battery","0")eq"ok"?"%batterie@lightgreen": Unmatched ( in regex; marked by <-- HERE in m/^<{$DEVICE=~s/_Climate/_Thermostat/;( <-- HERE ReadingsVal($DEVICE,"battery","0")eq"ok"?"%batterie@lightgreen"$/ at ./FHEM/33_readingsGroup.pm line 491.


Ich habe es ohne "(" in der Definition und auch mit probiert...

Arek

Zitat von: justme1968 am 28 Februar 2014, 16:23:34
um das drop down richtig zu initialisieren ist auf jeden fall ein reading nötig das genau so heisst wie das set commando. das mit dem userReading ist also eigentlich richtig. gibt es das reading auch wirklich? im richtigen device?

Kann es sein, dass readingsGroup Probleme mit userReadings hat? Das userReading funktioniert in einem Dummy einwandfrei, nur in readingsGroup erscheint einfach kein Reading. Außerdem muss das Reading für jedes Device abgefragt werden und ich zweifel daran, dass es mit userReadings realisierbar ist.
Ich habe noch etwas anderes probiert:

*._Heizung_Climate:mode,measured-temp,humidity,desired-temp,<mode>
commands {'Heizungswerte.mode' => 'mode:auto,manu,boost'}


Damit ist das Dropdown initialisiert, lässt sich aber nicht umschalten, weil der Befehl "mode" zum Setzen falsch ist und controlMode heißen muss. Lässt sich das irgendwie kombinieren?

Gruß Arek

justme1968

ein user reading ist aus sicht der radingsGroup und jeder anderen komponente nicht von 'normalen' readings zu unterscheiden. bis auf eine kleine ausnahme im timing. es kann sein das das userReading noch nicht aktuell ist wenn das normale reading schon aktualisiert ist.

was meinst du mit für jedes device abgefragt werden? die readingsGroul arbeitet device orientiert. das sollte also kein problem sein.

die user readings müssen auf jeden fall in die einzelnen devices. sonst funktioniert das nicht mehr wenn du mehr als ein device hast.

wenn da etwas nicht geht muss ich mir das anschauen.

gruss
  andre

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

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

cerberus

Hallo Andre, ist es möglich aus dem Device State ein bestimmten Wert in ReadingsGroup anzeigen zu lassen. Ich möchte gern meine Temperatur/Feuchte Sensoren mit ReadingsGroup anzeigen lassen, habe aber als Reading nur temperature und humidity. Im state des devices wird mir aber noch der dewpoint angezeigt (leider nicht als Reading). Wie kann ich diesen Wert aus state mit in mein Reading der ReadingsGroup aufnehmen?

Gruß
cerberus
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

justme1968

du kannst mit vorangestellten + auch internals in die readingsGroup einbauen. aber für internals gibt es kein longpoll.

wenn der taupunkt aus dem dewpoint modul kommt kannst du auch ein ganz normales reading erzeugen lassen. dann geht auch longpoll.

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

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

Arek

Also userReadings funktioniert in readingsGroup definitiv nicht. Es werden einfach keine Readings angezeigt und auch nicht ausgewertet. Ich habe das Problem folgendermaßen gelöst:

in jedem Device (Thermostat) ein userReading, das so heißt wie der Befehl zum Setzen:
userReadings controlMode {ReadingsVal("WZ_Heizung_Climate","mode","0");; }

In der Definition von readingsGroup:
<{ReadingsVal($DEVICE,"controlMode","0")}>

Und das attr commands:
attr commands  {'Heizungswerte.controlMode' => 'controlMode:auto,manu,boost'}

Die einzige Kleinigkeit, die mich noch stört ist, nach setzen der Einstellung ist das Reading mit einem set_ davor (zB set_manu) bis das Device den Modus bestätigt (dauert paar Minuten).
Kann man die Readings manipulieren, dass falls ein set_ da steht es entfernt wird?

Gruß Arek

justme1968

das hatte ich doch gesagt. die user readings müssen ist original device. nicht in die readingsGroup.

in der readingsGroup machen sie doch gar keinen sinn weil es (in deinem fall) keine readings gibt durch sie getriggert werden würden.

das set_ bekommst du z.b. über valueFormat weg.

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

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

Arek

Wenn du mir noch einen Tipp geben könntest, wie das valueFormat  aussehen sollte wäre ich dir sehr dankbar.

Gruß Arek

justme1968

etwas in der art$VALUE =~ s/set_//

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

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

Arek

#74
valueFormat {"measured-temp" => "%.1f °C", "humidity" => "%.0f %%", "controlMode" => "$VALUE =~ s/set_//"}
funktioniert nicht und ich bekomme anstatt den anderen Readings nur HASH(0x286e198) angezeigt... :(