Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

chris1284

Zitat von: justme1968 am 15 Dezember 2014, 09:54:55
@chris1284: das mit dem zusätzlichen parameter für die farbe ging bis eben nicht. ist morgen im update enthalten.
das mapping schaut so aus:...,'rg.blau' => 'rgb:colorpicker,RGB 0000ff',...

klappt nicht. bekomm es nicht rein.l fehler:  "unknown command ..." colorpicker, RGB usw usw

kvo1

Hallo Andre,
kannst Du mir einen kleinen "Anstoß" geben , irgendwie habe ich einen Knoten im Kopf  :'(

ich möchte gern von allen Thermostat (Model = HM-CC-RT-DN) Readings vom Device und aber auch von einem Kanal in
eine readingsgroup zusammenfassen.

die Devicename  enden dabei alle mit HKT    (also KZ1_HKT, AZ_HKT, WZ_HKT)
   hiervon folgende readings (battery,batteryLevel,desired-temp,measured-temp)

die Kanäle      enden dabei alle HKT_ClimRT_tr   (also KZ1_HKT_ClimRT_tr, AZ_HKT_ClimRT_tr, WZ_HKT_ClimRT_tr)
  hiervon folgende readings (controlMode,ValvePosition,controlMode)

Und ich würde gern noch die Temp. per Dropdown einstellen können.

Danke
kvo1

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

justme1968

@chris1284: wo genau kommt die meldung? bitte poste mal die komplette definition der readingsGroup.

@kvo1: am besten fängst du damit an erst mal auf device ebene alles anzuzeigen was du möchtest. danach kann du für jede device zeile jeweils mit<readings>@{$DEVICE.'_ClimRT_tr'} die readings aus den kanälen hinzufügen.

schau dir bitte mal die heizungs beispiele im wiki an. dort und hier im forum sollte alles dabei sein was du brauchst.

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

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

chris1284

@kvo1:

du solltest als erstes mal fhem aktualisieren ClimRT_tr heist der Channel schon lan nicht mehr sondern Clima -> Update machen.
wie du readings aus unterscgiedlichen devices / channels holst steht hier http://www.fhemwiki.de/wiki/ReadingsGroup#Readings_aus_zus.C3.A4tzlichen_Devices
ich habs allerdings direkt im DEF gemacht (vom channel-namen clima einfach _Clima abgeschnitten
dein define müsste dann wenn dein channel richtig hiesst so aussehen:

define <rg-name> readingsGroup .*._Clima:desired-temp,measured-temp,ValvePosition,controlMode,<{ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"battery","n.A.")}>,<{ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","n.A.")}>

danach für die Temp. per Dropdown

attr <rg-name> commands {'desired-temp'=>'desired-temp:'}


damit vor dme dropdown nicht der name des device steht

attr <rg-name> mapping {'desired-temp' => ''}

chris1284

#979
anbei das bild mit dem error und die DEF

define Lichtschaltung readingsGroup az_light_ledschlauch:<>,<>,<>,state,rgb
.*._dose_.*:<>,<>,<>,state
attr Lichtschaltung commands {'rgb' => 'rgb:rgb ff0000'}
attr Lichtschaltung fp_03_Schalten 125,225,0,
attr Lichtschaltung mapping {az_light_ledschlauch => "Büro Ledstripe",az_dose_lichtschlauch=> "Büro Lichtschlauch",az_dose_monitor=> "Büro Monitorlicht",az_dose_regal=> "Büro Regallicht",wz_dose_lichtschlauch=> "WZ Lichtschlauch",wz_dose_tvbackground=> "WZ TV-Licht"}
attr Lichtschaltung nameStyle style="text-align:left;"
attr Lichtschaltung nolinks 1
attr Lichtschaltung notime 1
attr Lichtschaltung room 99_Floorplans
attr Lichtschaltung valueIcon { state => '%devStateIcon' }


commands {'rgb' => 'rgb:'} zeigt den colorpicker (anhang colorpicker). aber der befehl mit direkt einer farbe funktioniert nicht

EDIT: im floorplan geht übrigen der Colorpicker nicht auf

justme1968

ich hatte aber doch nicht das hier:attr Lichtschaltung commands {'rgb' => 'rgb:rgb ff0000'}sondern das hier:attr Lichtschaltung commands {'rgb' => 'rgb:colorpicker,RGB 0000ff'}geschrieben.

ab morgen geht auch die abgekürzte Schreibweise wenn das device den colorpicker selber schon unterstützt:attr Lichtschaltung commands {'rgb' => 'rgb: ff0000'}


zu erklärung:

die kurze form (rgb: ff0000) sagt fhem es soll das rgb kommando nutzen und im device nachschauen welches widget hier voreingestellt ist. das sieht man wenn man ein set ? auf das device macht. hier würde dann etwas wie rgb:colorpicker,RGB zurück kommen. d.h. für das rgb commando möchte das device den colorpicker verwenden. z.b. in den webCmds. vergleichbar mit dim:slider,0,1,100. hier sagt das device das für das dim kommando ein slider verwendet werden soll.

die lange form (rgb:colorpicker,RGB ff0000) überschreibt den vorschlag des device. das würde man verwenden wenn das device den colorpicker selber nicht angibt, bei einem dummy, oder wenn man etwas anderes verwenden möchte als das device vorschlägt. so wie es mit widgetoverride für die webCmd möglich ist. in einer readingsGroup kann man z.b. mit dim => 'dim:0,25,50,100' bei einem device das normalerweise einen slider zum dimmen verwendet diesen durch ein dropdown menü überschreiben.

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

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

chris1284

ah ok, ich hab die befehle aus dem device attr webCmd übernommen.
so attr Lichtschaltung commands {'rgb' => 'rgb:colorpicker,RGB 0000ff'}
bekommt man einen blauen, klickbaren button -> bei klick farbe wechselt zu blau.

jetzt will ich aber 3 dieser buttons nebeneinander in blau, rot, grün. das geht mit der lösung ja nicht und ich muss mir ein reading ausdenken (<%gruen>,<%rot>) und wieder mit
attr Lichtschaltung commands {"Lichtschaltung.rot" => 'set %DEVICE rgb fff0000'} abeiten.

bekommt man das wie bei webcmd hin n dieser cmd's 'rgb:colorpicker,RGB [farbe] in die readingsgroup zu bauen? wenn nicht mach ich mir halt entsprechende icon und binde die so <%gruen> als buttons ein



justme1968

wenn du drei buttons möchtest musst du es auch drei mal hin schreiben. oder vier mal für vier buttons. das musst du bei den webCmds doch auch:
attr <xxx> webcmd rgb:rgb ff0000:rgb 00ff00:rgb 0000ff

im def so: ...,<rgb>,<rot>,<gruen>,<blau>,... und im attribut so:
{'Lichtschaltung.rgb' => 'rgb:', 'Lichtschaltung.rot' => 'rgb: ff0000', 'Lichtschaltung.gruen' => 'rgb: 00ff00', 'Lichtschaltung.blau' => 'rgb: 0000ff'}

die abgekürzte version geht erst ab morgen. bis dahin musst du noch die lange version schreiben:{'Lichtschaltung.rgb' => 'rgb:', 'Lichtschaltung.rot' => 'rgb:colorpicker,RGB ff0000', 'Lichtschaltung.gruen' => 'rgb:colorpicker,RGB 00ff00', 'Lichtschaltung.blau' => 'rgb:colorpicker,RGB 0000ff'}

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

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

chris1284


kvo1

Hallo chris1284 , hallo Andre

Vielen dank für Eure Hilfe , die ersten Ansätze sehen schon mal gut aus.

@Andre:  auf device ebene würde ich gern  Soll-Temp.   Ist-Temp.  Ventil   rechtsbündig mit einer Kommastelle anzeigen !

@chris1284: wie stellt man hier den Battery als ICON dar ?
                    es werden dummerweise auch gleichnamige Logfiles aufgelistet  :( , wie bekomme ich die weg !

Danke  und gruss
klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

chris1284

#985
ersetzte in der def
<{ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"battery","n.A.")}>
mit
<{if(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"battery","n.A.")eq"ok"){"%batterie\@green"}else{"%batterie\@red"}}>

ValueIcon greift in dem Fall leider nicht auf "battery".

Zitates werden dummerweise auch gleichnamige Logfiles aufgelistet
habe dblog somit hab ich das problem nie gehabt. du musst den regexp so anpassen das er filelog.* nicht reinnimmt.
bei mir recht einfach da alle thermostate mit hz_ beginnen und die filelof ja mit filelog_

hz_.*._Clima

kvo1

@chris1284: Danke, teste ich später (so langsam durchschaue ich das auch, echt genial diese readingGroup)

bei mir klappt diese Formatierung nicht , weder einstellige Temp. noch die Einheit (°C)

attr Heizungswerte valueFormat {desired-temp => "%.0f °C", ValvePosition =>"%.0f %%"}

Ist aber aus dem WIKI und die reading Namen stimmen doch auch !

kvo1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

justme1968

desired-temp (und eigentlich alle keys) muss in anführungszeichen.

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

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

kvo1

Zitat von: justme1968 am 17 Dezember 2014, 09:24:51
desired-temp (und eigentlich alle keys) muss in anführungszeichen.

gruss
andre
Hallo Andre,
da habe ich wohl genau am falschen Beispiel nachgeschaut  ;)
===> Heizungswerte inklusive Ventilposition (hier fehlen die leider )

und bei diesem Attribute
attr Heizungswerte valueStyle { if($READING eq "temperature" && $VALUE > 20){ 'style="color:green;;font-weight:bold"' }elsif( $READING eq "temperature" && $VALUE <= 20 ){ 'style="color:blue"' }elsif( $READING eq "temperature" && $VALUE > 23 ){ 'style="color:red"' }else{ 'style="color:gray"' } }

bekomme ich nur grün und blau , obwohl Werte > 23 vorhanden sind,
liegt vermutlich daran , das hier doppelt geprüft wird ?? (nur eine Vermutung)

Zitat($READING eq "temperature" && $VALUE > 20){ 'style="color:green;;font-weight:bold"' }
( $READING eq "temperature" && $VALUE > 23 ){ 'style="color:red"' }

gruss / Danke
Klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

justme1968

im wiki beispiel haben die reading namen keinen bindestrich. perl erlaubt es die anführungszeichen weg zu lassen wenn der key ein string ist der nur aus buchstaben besteht. ich habe es im wiki trotzdem geändert.

der perl ausdruck wird von links nach rechts abgearbeitet und das erste 'passende' vergleich gewinnt. da eine zahl die > als 23 auch > als 20 ist gewinnt hier die 20. die vergleiche müssen also bei einem vergleich auf > absteigend und bei einem vergleich auf < aufsteigend sortiert werden.

dein Vergleich auf > 23 muss also an den anfang.

der else zweig in deinem beispiel wird übrigens nie ausgeführt da es keine zahl gibt die gleichzeitig weder > 20 noch <= 20 ist.

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

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