update readingsGroup

Begonnen von justme1968, 08 Juli 2014, 11:47:10

Vorheriges Thema - Nächstes Thema

justme1968

ab morgen gibt es ein update für die readingsGroup mit dem es möglich ist bei mehreren readings in einer zeile zusätzlich noch readings aus anderen devices mit anzuzeigen.

die readings aus den zusätzlichen devices werden im einfachsten fall so deklariert:...,<reading>@<device>,...wenn der name des zusätzlichen devices dynamisch von aktuellen device der zeile abgeleitet wird kann das über diese variante realisiert werden:...,<reading>@{...},...wobei {...} im ein perl ausdruck ohne leerzeichen oder komma sein muss. bei komplexeren dingen muss es also in eine sub in 99_myUtils.pm ausgelagert werden.

anwendungsfälle hierfür sind z.b. bei hm devices zusätzlich zu den readings aus dem haupt channel noch readings aus anderen channels einzublenden. oder zu einem wand thermostaten noch die ventilstellung oder andere readings aus den zugehörigen stellantrieben. der name des zusätzlichen channel lässt sich über die {...} variante dann dynamisch bestimmen.

ein beispiel findet sich hier: http://forum.fhem.de/index.php/topic,14425.msg182143.html#msg182143 bzw. hier: http://www.fhemwiki.de/wiki/ReadingsGroup#Readings_aus_zus.C3.A4tzlichen_Devices.


das ganze funktioniert auch für internals und attribute und readings werden wie gewohnt per longpoll aktualisiert.

bisher war das nur über die <{ReadingsVal(<device>,...)}@reading> variante möglich. die werte hier wurden aber mit nameStyle statt valueStyle formatiert und konnten auch nicht per longpoll aktualisiert werden.

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

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

wkarl

#1
Hallo Andre,

seit einigen Tagen kämpfe ich mein letztes Problem, den Inhalt von controlMode in eine select-Liste (wie desired-temp) zu packen. Den work-around aus einem anderen thread habe ich auch schon getestet, mit wenig Erfolg. Letzte Hoffnung dieses Update. Das Ergebnis siehst Du im angehängten screenshot.

Meine Version von 33_readingsGroup.pm ist 6221 2014-07-08 18:08:39Z.

Kannst Du mir helfen, zu erkennen was hier falsch ist?

Danke und ciao
walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

justme1968

du musst die < > weg lassen. <reading> und <device> bedeutete das du beides durch deinen konkreten namen ersetzen musst. also so:...,R-controllMode@Buero_TC_Climate,...oder falls du mehr als einen TC hast auch so:...,R-controllMode@{$DEVICE."_Climate"},...

bei den commands muss das natürlich auch noch dazu: "R-controllMode" => "R-controllMode:"

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

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

frank

#3
hallo walter,

wenn du einen hm-cc-tc hast, musst du dass reading "controlMode" aus dem climate channel benutzen. ich habe das mit

controlMode@{$DEVICE."_Climate"}
erfolgreich umgesetzt.

edit: erfolgreich nur insofern, dass die select-liste angezeigt wird und man etwas schalten kann. der aktuelle zustand ist bei mir aber noch nicht in der liste zu sehen. siehe dein thread bei homematic. funktioniert die anzeige etwa bei dir? (wenn du dann die liste zu sehen bekommst)

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

wkarl

Hallo Frank, hallo Andre,

im screenshot seht ihr mein aktuelles, funktionierendes Ergebnis. FH ist ein HM-CC-TC und HK ein HM-CC-RT-DN.

Der HM-CC-RT-DN funktioniert wunderbar - die Kommandos werden ausgeführt und die gesetzten Werte nach einem refresh angezeigt.

Der HM-CC-TC zickt noch ein bisschen - das Thema desired-temp funktioniert bestens, controlMode hat so seine Schwierigkeiten.

@Frank: controlMode statt R-controlMode bewirkt, das nichts von dem HK-Modus angezeigt wird. Bei R-controlMode wird anzeigt was Ihr im screenshot seht.
Mir gehen die Ideen aus :-(
Any comments?
Danke und ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

frank

Zitat@Frank: controlMode statt R-controlMode bewirkt, das nichts von dem HK-Modus angezeigt wird. Bei R-controlMode wird anzeigt was Ihr im screenshot seht.
eine select liste existiert nur für reading/cmd controlMode im climate channel. wahrscheinlich existiert das reading noch nicht im channel. mache mal ein getconfig auf den tc. danach sollte das reading erscheinen und dann auch die select-liste.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

wkarl

Hallo Frank,

da aktuell an dem Projekt 'WAF-komptible Oberfläche' arbeite, habe ich auch mit Dashboard experimentiert und ähnliches zusammengebaut.

Wie der screenshot zeigt funktioniert es dort.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

frank

hast du mal nach dem reading geschaut? mit r-controlmode kann es nicht funktionieren. da kann man nur den wert anzeigen, aber kein select.
gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

justme1968

damit du das command mapping <reading> => <command>: so verwenden kannst müssen folgende bedienungen erfüllt sein:

- es muss das <reading> im device geben
- das device muss ein set <name> <command> unterstützen
- ein 'set <device> ?' muss im ergebnis string <command>:modifier enthalten wobei modifiert eine gültige select liste ist

wenn irgendetwas davon nicht zutrifft geht es zumindest nicht automatisch und du musst martin fragen.

der <reading> und <command> müssen in der readingsGroup nicht den gleichen namen haben. du kannst beim command mapping hinter <command>: selber die liste der erlaubten werte angeben wenn die beim set ? nicht zurück kommt.

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

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

Elektrolurch

Hallo Andre,

ich hatte noch eine Ergänzung vorgeschlagen:
Wenn command für ein reading definiert ist, wird normalerweise valueFormat für das reading (Ausgabe command) ignoriert.
Ich fand es jedoch ganz schick, wenn bspw. direkt hinter dem Menü für die Temperaturen auch (Grad C) oder für den Durchfluss einer Pumpe l/min stehen würde und habe das in der readingsGroup eingebaut und getestet.
Geht einwandfrei und hat auch keine "Nebenwirkungen".
Die Ausgabe des über fhemweb ermittelten widgets ist mit einem Tag sauber abgeschlossen. Man kann z.B. dann:
...command {'Durchfluss' => 'Durchfluss:5,6,7,8,9,10,aus'...
...value'Format {'Durchfluss' =>'l/min',...
definieren und dies direkt hinter dem Menü ausgeben.
Dazu wird <td> ...den Inhalt des valueFormates </td> eingefügt.
Andre, ich habe den Vierzeiler nicht gerade greifbar, kann aber meine Ergänzung posten, m.d.B. die dann einzubauen, wenn es vonInteresse ist, ansonsten läuft mein Stand der readingsGroup mit dem offiziellen auseinander
Vorteil der Lösung ist, dass der Bezeichner nicht in eine neue Spalte rutscht und man auch nicht mit valueColumn (?) hier herumtricksen muss, damit es optisch ok aussieht.
Auch muss da nix an der Ausgabe von fhemweb geändert werden, einfaches anhängen geht.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

ich bau es ein wenn du es postest.

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

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

wkarl

#11
Hallo Andre,

Zitat- es muss das <reading> im device geben
- das device muss ein set <name> <command> unterstützen
- ein 'set <device> ?' muss im ergebnis string <command>:modifier enthalten wobei modifiert eine gültige select liste ist
lt. dem ersten screenshot sind die ersten beiden Anforderungen erfüllt.
und der zweite screenshot erfüllt den letzten Punkt.

Wenn ich das richtig verstehe sollte controlMode@Buero_TC_Climate eine select-Liste erzeugen.
Ebenso wie es webCmd im dritten screenshot ergibt.

Oder bin ich im völlig falschen Film?

Edit: Ich war im falschen Film. Habe es eben nochmal getestet - jetzt funktioniert es. Entschuldigt bitte  ::)

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Hallo,

entschuldigt, ich schon wieder. Ich dachte ich habs verstanden, aber irgendwie ...

$DEVICE ist Buero_TC, herauskommen soll Buero_HK_ClimRT_tr. fhem stürzt bei folgendem coding ab:
desired-temp@{substr("$DEVICE",0,length("$DEVICE")-2)."HK_ClimRT_tr"}

Danke schon mal für die Hilfe.
ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

frank

es sind mindestens nicht erlaubt in der code-klammer: leerzeichen, komma, doppelpunkt

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

justme1968

alles was komplizierter ist als suchen und ersetzen mit s/// ist besser in 99_myUtils aufgehoben.

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

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