Neues Modul readingsGroup

Begonnen von Niko, 24 August 2013, 11:59:11

Vorheriges Thema - Nächstes Thema

Spiff

Hi Michael,

probier mal sowas:

define Oeffnungszeiten readingsGroup FensterKind1:state,battery FensterKind2:state,battery KellerFensterSueden:state,battery KellerFensterPartyraum:state,battery Garagentuer:state,battery KellerTuer:state,battery 

Gruß
Spiff

Roaster

Prima Danke! Das hat mir schon Mal einen Anhaltspunkt geliefert wie ich es machen kann:

define Oeffnungszeiten readingsGroup Fenster.*:state,battery Keller.*:state,battery Garage.*:state,battery KellerFenster.*:state,battery Terasse.*:state,battery

Ist zwar ein wenig unübersichtlich, aber es läuft.

Dann habe ich noch ein Thema mit dieser Definition hier zu meinem Max! Thermostat:

define Heizungswerte readingsGroup <%sani_heating>,<Ventil>,<Soll-Temp>,<Ist-Temp>,<Modus>,<Batterie> Heizung(Eltern|):valveposition,desiredTemperature,temperature,mode,battery
attr Heizungswerte mapping %ROOM
attr Heizungswerte nameStyle style=color:yellow;;font-weight:bold
attr Heizungswerte valueFormat {temperature => "%.0f °C", desiredTemperature => "%.0f °C", valveposition =>"%.0f %%" }
attr Heizungswerte room Heizungswerte
attr Heizungswerte valueIcon {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red', 'mode.manual' => 'sani_heating_manual@red', 'mode.auto' => 'sani_heating_automatic@green'}


Ich würde bei dieser Defintion davon ausgehen, dass ein Symbol (sani_heating_automatic bzw. sani_heating_manual) für den Modus Auto (mode.auto) bzw. Modus Manuell (mode.manual) angezeigt wird. Tut es aber nicht. Stattdessen bleibt der jeweilige Text stehen.
Was mache ich falsch?

Michael

RoBra81

Hallo,

erstmal muss ich sagen, dass dies ein prima Modul ist, das sehr mächtig ist. Ich habe mir u.a. eine ReadingsGroup zur Bedienung meiner Heizkörper im Floorplan gemacht. Und da habe ich ein Problem mit dem/eine Frage zum LongPoll. Hier zunächst meine ReadingsGroup:

define DG.wz.HZ.Heizkoerperventil.RG readingsgroup <%sani_heating>,<>,<>,<>
DG.wz.HZ.Heizkoerperventil.Clima:<Ist>,measured-temp,<>,<>
DG.wz.HZ.Heizkoerperventil.Clima:<Soll>,controlManu,<{getHeatingStateIcon($DEVICE)}@state>,<{getHeatingStateValue($DEVICE)}@state>
DG.wz.HZ.Heizkoerperventil.Clima:<Mode>,controlMode,<{getHeatingModeUntil($DEVICE)}@controlMode>,<>
DG.wz.HZ.Heizkoerperventil.Clima:<Bat>,battery@{getHeatingDeviceName($DEVICE)},<>,<>
DG.wz.HZ.Heizkoerperventil.Clima:<Ventil>,ValvePosition,<>,<>


Diese stellt u.a. die Ist-Temperatur dar und bietet die Möglichkeit, die Soll-Temperatur aus einer Dropdownliste auszuwählen (diese setzt das Heizkörperventil in den Handmodus). Die Übernahme der Soll-Temperatur beim HM-CC-RC-DN dauert eine Weile: zunächst wird der state des Geräts  DG.wz.HZ.Heizkoerperventil.Clima auf "set_controlManu xx.x" gesetzt. Wenn dies der Fall ist, wird in der ReadingsGroup eine Sanduhr und die zu setzende Temperatur angezeigt.
Außerdem wird durch ein notify ein at aktiviert, welches das Heizkörperventil nach 1,5h wieder in Automatik setzt. Daher wird neben dem Symbol für den Modus beim Handbetrieb auch der Zeitpunkt für das Rücksetzen angezeigt. Soweit der Plan und bei manueller Aktualisierung klappt das auch (siehe Anhang).

Nun zu meinen Problemen:

1. Zum einen habe ich gehofft, dass durch <{Funktion()}@reading> bei Aktualisierung des reading auch die Funktion erneut aufgerufen und der aktualisiert wird. Das schein jedoch wenn dann nur sporadisch zu funktionieren. Kann es vielleicht sein, dass es Probleme gibt, wenn ich mehrmals das gleiche reading (z.B. @state) nutze?

2. Zum anderen habe ich das Problem, dass in der Zelle für das Icon der Handbedienung (Zeile 3 Spalte 3) und dem Zeitpunkt für das Rücksetzen in Automatik (Zeile 4 Spalte 3) manchmal gleiche Werte drin stehen. Ein Blick in den HTML-Quellcode der Seite bringt mich zu folgender Vermutung: scheinbar wird die informid (ich meine, die ist für das LongPoll da) aus Name der ReadingsGroup + Name des Gerätes + Spalte zusammengebaut, was dazu führt, dass die div-Container in den beiden Zellen die gleiche informid (DG.wz.HZ.Heizkoerperventil.RG-DG.wz.HZ.Heizkoerperventil.Clima.i2.item) haben.

Kann jemand etwas dazu sagen?

Vielen Dank
Ronny

justme1968

das hängt beides zusammen. zur zeit gibt es die mehr oder weniger implizite annahme das pro device ein reading nur ein mal in der readingsGroup vorkommt.

bei mehrfach verwendung kann es dann sein das manches nicht so funktioniert wie erwartet.

ich muss mal schauen was man hier tun kann.

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

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

RoBra81

Ich muss mich noch mal melden, da ich voller Begeisterung gerade festgestellt habe, dass sich meine kleine Funktion (http://forum.fhem.de/index.php/topic,26913.0.html) zum Verstecken von Floorplan-Inhalten eins zu eins so in einer ReadingsGroup einsetzen lässt: So habe ich ein Chart-Symbol in meiner ReadingsGroup, mit welchem ich mir durch anklicken den Chart der Heizung (DG.wz.PL.Klima) einblenden kann:

<{hideButtonHTML("KlimaDiagramm", "DG.wz.PL.Klima", "/fhem/images/default/chart.png", "40")}>

Ich kann mich nur wiederholen: Super Modul

justme1968

hier im wiki (http://www.fhemwiki.de/wiki/ReadingsGroup#Links_und_Trigger) ist auch etwas das zu dem thema passt. mit den passenden html Elementen vor dem eigentlichen 'button' kannst du ihn z.b. auch ganz ans ende hinter die readingsGroup bekommen und und z.b. auch elemente oder deren aussehen in der readingsGroup beeinflusse.

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

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

RoBra81

Ich habe gerade die Idee, unwichtige Zeilen der readingsGroup standardmäßig auszublenden und mittels Button einzublenden. Meine Idee momentan ist, zwei readingsGroups übereinander zu legen und die untere mittels Button einzublenden. Gibt es noch eine andere Möglichkeit z.B. für einzelne Zeilen das visible-Attribut zu setzen?

justme1968

wenn die valueFormat ein undef liefert wird das reading ausgeblendet, wenn eine komplette zeile kein reading enthält wird die komplette zeile ausgeblendet. schau mal im wiki. da gibt es glaube ich auch dazu ein beispiel wie man den inhalt dynamisch ändern kann. die readings und zeilen sind aber wirklich komplett weg und werden beim longpoll update nicht berücksichtigt. zum wieder einblenden muss dann die readingsGroup bzw die ganze seite aktualisiert werden.

ansonsten bin ich gerade dabei ein row/column/cell style einzubauen (siehe hier: http://forum.fhem.de/index.php/topic,25195.msg185665.html#msg185665). ist aber noch nicht ganz fertig. damit könnte man dann über visibility zeilen/spalten/elemente unsichtbar machen und auch wieder einblenden ohne das alles neu aufgebaut werden muss. irgendwo ist aber noch ein kleiner fehler drin :)

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

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

Roaster

Zitat von: Roaster am 09 September 2014, 22:24:28
Dann habe ich noch ein Thema mit dieser Definition hier zu meinem Max! Thermostat:

define Heizungswerte readingsGroup <%sani_heating>,<Ventil>,<Soll-Temp>,<Ist-Temp>,<Modus>,<Batterie> Heizung(Eltern|):valveposition,desiredTemperature,temperature,mode,battery
attr Heizungswerte mapping %ROOM
attr Heizungswerte nameStyle style=color:yellow;;font-weight:bold
attr Heizungswerte valueFormat {temperature => "%.0f °C", desiredTemperature => "%.0f °C", valveposition =>"%.0f %%" }
attr Heizungswerte room Heizungswerte
attr Heizungswerte valueIcon {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red', 'mode.manual' => 'sani_heating_manual@red', 'mode.auto' => 'sani_heating_automatic@green'}


Ich würde bei dieser Defintion davon ausgehen, dass ein Symbol (sani_heating_automatic bzw. sani_heating_manual) für den Modus Auto (mode.auto) bzw. Modus Manuell (mode.manual) angezeigt wird.

Niemand eine Idee zu den nicht dargestellten Symbolen bei Readings mode (auto/manual)?

RoBra81

Was wird denn stattdessen angezeigt? Wird der Name des Symbols angezeigt, dann findet er das Symbol nicht.

Roaster

Zitat von: RoBra81 am 11 September 2014, 14:50:10
Was wird denn stattdessen angezeigt? Wird der Name des Symbols angezeigt, dann findet er das Symbol nicht.

Der Wert des Readings wird angezeigt: auto bzw. manual. Ich habe gerade nochmals den Namen des Symbols gecheckt, beide existieren.

RoBra81

Hast du mal einen Screenshot? Ich habe keine MAX!-Komponenten.

Roaster


justme1968

gerade eben mit deinen value icons in meiner definition und auch deiner komplette definition getestet und es geht beides ...

das problem muss also woanders sein.

ist dein fhem aktuell ?

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

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

Spiff

Es sieht so aus, als wären die Icon-Verzeichnisse richtig definiert, sonst würde er das Gruppensymbol nicht anzeigen. Ich frag trotzdem:

Ist dein Verzeichnis, in dem die beiden Icons drin sind, für dein fhemweb definiert?
attr WEB iconPath fhemSVG:openautomation:default

Was passiert, wenn du das auf jeden Fall funktionierende Batteriesymbol (und erstmal nur das) verwendest?
attr Heizungswerte valueIcon {'mode.manual' => 'batterie@lightgreen', 'mode.auto' => 'batterie@red'}

Gruß
Spiff