Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

Tommy82

Hi,
habe heute folgende Meldung im Log:

2016.03.01 21:43:43.154 1: PERL WARNING: Argument "-" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 525.
2016.03.01 21:43:43.155 3: stacktrace:
2016.03.01 21:43:43.156 3:     main::__ANON__                      called by ./FHEM/33_readingsGroup.pm (524)
2016.03.01 21:43:43.156 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (997)
2016.03.01 21:43:43.157 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1086)
2016.03.01 21:43:43.157 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1592)
2016.03.01 21:43:43.157 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (897)
2016.03.01 21:43:43.158 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.03.01 21:43:43.158 3:     main::FW_Read                       called by fhem.pl (3147)
2016.03.01 21:43:43.158 3:     main::CallFn                        called by fhem.pl (654)
2016.03.01 21:43:44.305 1: PERL WARNING: Argument "-" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 525.
2016.03.01 21:43:44.306 3: stacktrace:
2016.03.01 21:43:44.306 3:     main::__ANON__                      called by ./FHEM/33_readingsGroup.pm (524)
2016.03.01 21:43:44.307 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (997)
2016.03.01 21:43:44.307 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1086)
2016.03.01 21:43:44.307 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1592)
2016.03.01 21:43:44.308 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (897)
2016.03.01 21:43:44.308 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.03.01 21:43:44.308 3:     main::FW_Read                       called by fhem.pl (3147)
2016.03.01 21:43:44.309 3:     main::CallFn                        called by fhem.pl (654)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Kai-Alfonso

#1501
Huhu,

ich versuche mich mal grad in die readingsGroup einzulesen und finde die Möglichkeiten recht spannend. Ich hab dazu auch gleich mal eine Frage:

Ich habe folgende RG

define Sonos_Bad_RG readingsGroup steckdose.Sonos_Bad:state Sonos_Bad:state doif.Bad.Sonos.AutoOff:state
attr Sonos_Bad_RG alias Sonos Badezimmer
attr Sonos_Bad_RG mapping {'steckdose.Sonos_Bad' => 'Strom', 'doif.Bad.Sonos.AutoOff' => 'autom. Abschaltung', 'Sonos_Bad' => 'Status'}
attr Sonos_Bad_RG room Badezimmer
attr Sonos_Bad_RG valueIcon { state => '%devStateIcon' }


Bedienung funktioniert super, allerdings scheint er den Status und Icons nur nach einem reload der Seite zu aktualisieren und nicht automatisch per longpoll. Weiß jemand, welchen Fehler ich gemacht habe?

Vielen Dank
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

hmm, hat keine ne Idee? Andre vielleicht?  8) 8) 8) 8) :o :o
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

justme1968

werden die icons der einzelnen devices korrekt aktualisiert? auch in einem zweiten browser fenster?

gibt es events dazu im event monitor?

was sagt verbose 5 auf die readingsGroup?

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

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

Kai-Alfonso

Moin Andre

Zitat von: justme1968 am 09 März 2016, 21:32:55
werden die icons der einzelnen devices korrekt aktualisiert? auch in einem zweiten browser fenster?

Ja, hab im zweiter Browserfenster das richtige Device offen und das Devicon aktualisiert ohne reload der Seite - das Icon des gleichen Devices in der RG akualisiert sich nicht automatisch - erst nach Reload des Raums


Zitat von: justme1968 am 09 März 2016, 21:32:55
gibt es events dazu im event monitor?

2016-03-10 07:49:08 IT steckdose.Sonos_Bad on
2016-03-10 07:49:53 readingsGroup Sonos_Bad_RG Sonos_Bad.state: Online
2016-03-10 07:49:53 readingsGroup Sonos_Gruppen item:1:1: readingsGroup Sonos_Gruppen item:1:1:

Zitat von: justme1968 am 09 März 2016, 21:32:55
was sagt verbose 5 auf die readingsGroup?


Im Fhemlog selber ist nichts ausgetaucht, außer das schalten der Steckdose - relevante Zeilen des Event Monitors siehe oben

Danke :D
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

zYloriC

Hallo zusammen,

ich versuche mit einem readingsGroup alle Geräte anzuzeigen, die aktuell ein Problem wie "MISSING ACK" haben. Diese Info ist im STATE des jeweiligen Geräts zu finden. Gibt es da eine Möglichkeit?
Oder gibt es einen Befehl "stateGroup"?? Leider konnte ich in Forum und Web bislang nichts finden.

Danke für eine Idee. Gruß zYloriC

Elektrolurch

Hallo Andre,

seit einiger Zeit bekomme ich folgende Warnung im log:
2016.04.05 12:12:01 1: PERL WARNING: Use of uninitialized value $room in substitution (s///) at ./FHEM/33_readingsGroup.pm line 312.

Ich hattte die Zeile 312 um ...if(defined($room));
ergänzt, aber mit dem heutigen Update war das natürlich wieder weg.
Vielleicht kannst Du für die subst in dem Block die if(defined... - Abfragen noch ergänzen, damit die Warnungen nicht mehr kommen.
Danke.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

bitte test mal die angehängte version und schau ob alles andere noch geht. ich glaube das problem ist eigentlich ein anderes.

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

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

Elektrolurch

ok. Scheint zu funktionieren.
Das Problem ist, dass ich in einem mapping - Ausdruck ROOM und ALIAS  verwende. Die rg hat aber oben zwei andere Zeilen, da passt das mapping nicht. Vmtl. kommt daher der Fehler. In dem mapping-Ausdruck aber genau die zwei Zeilen auszunehmen, machen ihn ziemlich länglich.
Danke.

Elektrolurch
configDB und Windows befreite Zone!

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

Elektrolurch

Hallo zusammen,

habe da ein Verständnisproblem.
Ich möchte in einer readingsGroup den Namen eines Attributes dynamisch berechnen. Habe z.B. die Attribute alarm-name1...alarm-name3 und ein Attribut alarm-level mit den Werten 1 bis 3.

define Alarm_rg readingsGroup Alarm_innen:<Alarmname>,<{Alarm_getNumAttr($DEVICE,'alarm-name')}>@Alarm_innen

zeigt nur den Trailer "Alarmname" an.
Die Funktion Alarm_getNumAttr liefert den String "!?alarm-name2" entsprechend des alarm-level = 2 zurück, also das Attribut alarm-name2, wobei das ! soll sicher stellen, das auch bei nicht gesetztem Attribut ein leeres Textfeld angezeigt werden soll. (die Attribute alarm-name1...3 wurden allerdings gesetzt)

Leider verstehe ich da die Command-Ref nicht, habe schon alle Varianten durchgespielt:

◾ regex can be of the form <STRING> or <{perl}[@readings]> where STRING or the string returned by perl is inserted as a reading or:

so eingesetzt:
Alarm_innen:<Alarmname>,<{Alarm_GetNumAttr($DEVICE,'alarmname')}[@readings]>
liefert in der Anzeige:
Alarmname {Alarm_GetNumAttr($DEVICE,'alarmname')}[@readings]
also der perl-Ausdruck wird nicht evaluiert.

Außerdem steht die obige Angabe aus der Command-Ref im Widerspruch zur Schreibweise:

<String>, denn das wird doch immer als Text und nicht als reading interpretiert.

Auch ist mir die Bedeutung von [@readings] nicht klar.
Sind die [] - Optionsklammern oder gehören sie zur Syntax. Was ist @readings? Ein notwendiges Schlüsselwort für die Syntax oder durch was soll es aktuell ersetzt werden?
Geht das überhaupt für Attribute?

Wer kann mir da weiterhelfen?

Elektrolurch
configDB und Windows befreite Zone!

cerberus

Hallo, ich habe zwei Fragen zu meiner ReadingsGroup.

In folgendem Beitrag habe ich die ReadingsGroup für Openweather für mich angepasst.

https://forum.fhem.de/index.php/topic,51321.15.html

Ich wollte nun die Readings in den Spalten zentriert darstellen, was ja mit der Funktion style="text-align:center" möglich ist. Ich weiß aber nicht wie ich auch die Icons mittig in der Spalte ausrichte. Eines noch dazu, einige Readings, unter anderem auch die Icons werden über 3 Spalten dargestellt damit ich die Min | Max Werte jeweils auch darunter stehen haben. Weiterhin würde ich gern wissen wie ich die Min und Max Temp noch weiter zusammenrücken kann, ich dachte da an style="text-align:right" für Min und style="text-align:left" für Max aber ich weiß nicht wie genau bzw. bekomme es nicht hin  :-\

hier der Code

define rg_WetterCom readingsGroup d_label:<%wettercom>,6,11,17,23,fc1_wday@WetterCom,fc2_wday@WetterCom \
WetterCom:<>,fc0_weatherCode06,fc0_weatherCode11,fc0_weatherCode17,fc0_weatherCode23,fc1_weatherCode,fc2_weatherCode\
WetterCom:<>,fc0_weather06,fc0_weather11,fc0_weather17,fc0_weather23,fc1_weather,fc1_weather  \
WetterCom:<Min|Max>,fc0_tempMin06,<|>,fc0_tempMax06,fc0_tempMin11,<|>,fc0_tempMax11,fc0_tempMin17,<|>,fc0_tempMax17,fc0_tempMin23,<|>,fc0_tempMax23,fc1_tempMin,<|>,fc1_tempMax,fc2_tempMin,<|>,fc2_tempMax  \
WetterCom:<Wind>,fc0_wind06,fc0_wind11,fc0_wind17,fc0_wind23,fc1_wind,fc2_wind  \
WetterCom:<Regen>,fc0_chOfRain06,fc0_chOfRain11,fc0_chOfRain17,fc0_chOfRain23,fc1_chOfRain,fc2_chOfRain
attr rg_WetterCom group Heute Wetter
attr rg_WetterCom noheading 1
attr rg_WetterCom nolinks 1
attr rg_WetterCom nonames 1
attr rg_WetterCom nostate 1
attr rg_WetterCom room Wetter_Klima
attr rg_WetterCom style style="border:0px;;background:none;;box-shadow:none"
attr rg_WetterCom valueColumns { '6' => 'colspan="3"', '11' => 'colspan="3"', '17' => 'colspan="3"', '23' => 'colspan="3"', 'fc1_wday' => 'colspan="3"', 'fc2_wday' => 'colspan="3"', \
'fc0_weatherCode06' => 'colspan="3"', 'fc0_weatherCode11' => 'colspan="3"', 'fc0_weatherCode17' => 'colspan="3"', 'fc0_weatherCode23' => 'colspan="3"', 'fc1_weatherCode' => 'colspan="3"', 'fc2_weatherCode' => 'colspan="3"', \
'fc0_weather06' => 'colspan="3"', 'fc0_weather11' => 'colspan="3"', 'fc0_weather17' => 'colspan="3"', 'fc0_weather23' => 'colspan="3"', 'fc1_weather' => 'colspan="3"', 'fc2_weather' => 'colspan="3"', \
'fc0_wind06' => 'colspan="3"', 'fc0_wind11' => 'colspan="3"', 'fc0_wind17' => 'colspan="3"', 'fc0_wind23' => 'colspan="3"', 'fc1_wind' => 'colspan="3"', 'fc2_wind' => 'colspan="3"', \
'fc0_chOfRain06' => 'colspan="3"', 'fc0_chOfRain11' => 'colspan="3"', 'fc0_chOfRain17' => 'colspan="3"', 'fc0_chOfRain23' => 'colspan="3"', 'fc1_chOfRain' => 'colspan="3"', 'fc2_chOfRain' => 'colspan="3"'}
attr rg_WetterCom valueFormat {return "%i&nbsp;;°C" if( $READING =~ m/temp/ );; \
return "%i&nbsp;;%%" if( $READING =~ m/chOfRain/ );; \
return "%i&nbsp;;km/h" if( $READING =~ m/wind/ ) }
attr rg_WetterCom valueIcon {return "openweather/d_%VALUE_S" if( $READING =~ m/Code/ );;\
return "openweather/d_%VALUE_S" if( $READING =~ m/Code06/ );; \
return "openweather/d_%VALUE_S" if( $READING =~ m/Code11/ );; \
return "openweather/d_%VALUE_S" if( $READING =~ m/Code17/ );; \
return "openweather/n_%VALUE_S" if( $READING =~ m/Code23/ )}
attr rg_WetterCom valueStyle style="text-align:center;;Icon:center"


Grüße
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

Elektrolurch

Du kannst z.B. mit valueFormat zwei Werte in einer Spalte ausgeben.

valueFormat{'mintemp' => '{"$VALUE C / " . ReadingsVal('Wetterstation','maxtemp',0) . " C"}' }

und wenn es noch komplizierter werden soll, das ganze in eine externe sub auslagern.
Mit <br> kann man auch zwei oder mehrere Zeilen in der Spalte ausgeben.
Ich habe mir eine sub gebastelt, die ein valueIcon mit darunter stehendem Text des Wertes zentriert in einer Spalte ausgibt.

Elektrolurch
configDB und Windows befreite Zone!

cerberus

Hallo Elektrolurch, so sollte es doch funktionieren

{ 'fc0_tempMin06' => '{"$VALUE °C | " . ReadingsVal('WetterCom','fc0_tempMax06',0).  " C"}' }

tut es aber nicht  :(

Grüße
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

Elektrolurch

Hallo cerberus,

schau mal in Deinem Ausdruck nach, Du hast " und ' gemischt.
Wenn Du außen für den Hash ' ' verwendest, dann müssen alle Strings inerhalt des Stings mit " gequoted werden.

Elektrolurch
configDB und Windows befreite Zone!