Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

justme1968

die drop down menus gehören zu sollest, das reaadings heisst aber desired-temp. da kann nichts per longpoll aktualisiert werden. du brauchst ein sollsetz reading (und musst sollsetz verwenden) damit longpoll geht.

warum überhaupt zwei spalten für soll und soll neu? die zeigen doch in deinem fall immer das gleiche an? du kannst doch direkt für desired-temp das drop down verwenden.

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

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

ext23

Mhh und wie mache ich das am besten?

Ich hatte damals nur das aus dem Wiki als Vorlage genommen und etwas erweitert und angepasst. Und ich meine auch, dass hat im letzten Jahr noch funktioniert mit dem Longpoll, ich hatte da schon mal Probleme mit aber dann lief es. Das ich zwei Spalten habe, ja stimmt schon, macht kein Sinn. Aber so habe ich immer gesehen wann er es übernommen hat. Außerdem finde ich es optisch besser, gut das °C bekommt man auch in die Box. Könnte man sich auch sparen ja, aber ich wollte da nicht ewig rumfrickeln und war froh das es lief, weißt ja SW Kram ist nicht so meins ;-)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Xaser

Hallo.

Ich habe zwei Fragen zu den readingsGroup.

Ich habe mir eine Heizungssteuerung (ähnlich den Artikel im Wiki) zusammen gebaut:

Internals:
   DEF        <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil>,<Modus>,<Bat>,<RSSI>,<LF>
Wandthermostat_Wohnzimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Wohnzimmer","temperature","")}>,<>,mode,battery,RSSI,<{ReadingsVal("Temperatur_Wohnzimmer","humidity","")}>
Thermostat_Wohnzimmer1:desiredTemperature,<>,<>,valveposition,mode,battery,RSSI
Thermostat_Wohnzimmer2:desiredTemperature,<>,<>,valveposition,mode,battery,RSSI
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Kueche:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Kueche","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Kueche","humidity","")}>
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Schlafzimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Schlafzimmer","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Schlafzimmer","humidity","")}>
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Bad:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Bad","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Bad","humidity","")}>
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Arbeitszimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Arbeitszimmer","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Arbeitszimmer","humidity","")}>
   NAME       heatingInfo
   NR         386
   NTFY_ORDER 50-heatingInfo
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Thermostat_Arbeitszimmer 1
     Thermostat_Bad 1
     Thermostat_Kueche 1
     Thermostat_Schlafzimmer 1
     Thermostat_Wohnzimmer1 1
     Thermostat_Wohnzimmer2 1
     Wandthermostat_Wohnzimmer 1
   Content2:
   DEVICES:
     ARRAY(0x3106cd0)
     ARRAY(0x318eca0)
     ARRAY(0x2e1f7f0)
     ARRAY(0x3be3088)
     ARRAY(0x4073178)
     ARRAY(0x37fa338)
     ARRAY(0x2bbcfb0)
     ARRAY(0x3f240f8)
     ARRAY(0x3c86250)
     ARRAY(0x2ef8b08)
     ARRAY(0x3974108)
     ARRAY(0x37a9c48)
   Fhem:
     lastDefChange 38
     last_update 1451562997.05122
   Helper:
     DEF
     Commands:
       heatingInfo.sollsetz desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0
       mode.auto  set %DEVICE desiredTemperature manual
       mode.manual set %DEVICE desiredTemperature auto
     Positions:
       Thermostat_Arbeitszimmer.RSSI 12:7
       Thermostat_Arbeitszimmer.battery 12:6
       Thermostat_Arbeitszimmer.desiredTemperature 12:1
       Thermostat_Arbeitszimmer.mode 12:5
       Thermostat_Arbeitszimmer.valveposition 12:4
       Thermostat_Bad.RSSI 10:7
       Thermostat_Bad.battery 10:6
       Thermostat_Bad.desiredTemperature 10:1
       Thermostat_Bad.mode 10:5
       Thermostat_Bad.valveposition 10:4
       Thermostat_Kueche.RSSI 6:7
       Thermostat_Kueche.battery 6:6
       Thermostat_Kueche.desiredTemperature 6:1
       Thermostat_Kueche.mode 6:5
       Thermostat_Kueche.valveposition 6:4
       Thermostat_Schlafzimmer.RSSI 8:7
       Thermostat_Schlafzimmer.battery 8:6
       Thermostat_Schlafzimmer.desiredTemperature 8:1
       Thermostat_Schlafzimmer.mode 8:5
       Thermostat_Schlafzimmer.valveposition 8:4
       Thermostat_Wohnzimmer1.RSSI 3:7
       Thermostat_Wohnzimmer1.battery 3:6
       Thermostat_Wohnzimmer1.desiredTemperature 3:1
       Thermostat_Wohnzimmer1.mode 3:5
       Thermostat_Wohnzimmer1.valveposition 3:4
       Thermostat_Wohnzimmer2.RSSI 4:7
       Thermostat_Wohnzimmer2.battery 4:6
       Thermostat_Wohnzimmer2.desiredTemperature 4:1
       Thermostat_Wohnzimmer2.mode 4:5
       Thermostat_Wohnzimmer2.valveposition 4:4
       Wandthermostat_Wohnzimmer.RSSI 2:7
       Wandthermostat_Wohnzimmer.battery 2:6
       Wandthermostat_Wohnzimmer.desiredTemperature 2:1
       Wandthermostat_Wohnzimmer.mode 2:5
     Values:
       formated:

         ARRAY(0x3cd7d88)


         ARRAY(0x3f225b8)
         ARRAY(0x3389278)
         ARRAY(0x4014f98)
         ARRAY(0x291c0a8)
       orig:

         ARRAY(0x3f230e8)


         ARRAY(0x2a77778)
         ARRAY(0x3f98438)
         ARRAY(0x3be7ce8)
         ARRAY(0x3c56980)
       prefixsuffix:

         ARRAY(0x3c42d88)


         ARRAY(0x3817830)
         ARRAY(0x37d1148)
         ARRAY(0x4014a88)
         ARRAY(0x3dd5268)
Attributes:
   commands   {
'heatingInfo.sollsetz'=>'desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0',
"mode.manual"=>"set %DEVICE desiredTemperature auto","mode.auto"=>"set %DEVICE desiredTemperature manual",
}
   room       30_Heizung


1. Ich möchte nun die Heizung immer über den Befehl "desiredTemperature auto" + die gewünschte Temperatur ansprechen. Wenn ich das "auto" nicht mit sende, springt das Thermostat immer in den Manuell Modus. Wie bekomme ich das hin? Ich habe jetzt schon einiges Probiert, allerdings komme ich einfach nicht auf das gewünschte Ergebnis.

2.Ich frage meine Raum-Temperaturen mit <{ReadingsVal("Temperatur_Wohnzimmer","temperature","")}> ab. Jetzt ist mir aufgefallen das er die neuen Temperaturen nur dann aktualisiert, wenn ich am Thermostat eine neue Temperatur eingebe oder die Seite aktualisiere. Eine automatische Aktualisierung funktioniert hier irgendwie nicht. Muss ich noch irgendwas ändern oder ggf. den Code ändern?

tomspatz

Jetz muss ich ier auch mal rein.
Im Event Monitor läuft ja immer die Readings Ausgabe, dabei kommen immer wieder komische Zeilen:
2016-01-06 16:15:07 readingsGroup BatterieStatus HeizungWohnzimmer.battery: image/svg+xml       ath9"    inkscape:connector-curvature="0" />                             
2016-01-06 16:15:07 readingsGroup BatterieStatusProzent HeizungWohnzimmer.battery: 84 %
2016-01-06 16:15:07 ZWave HeizungWohnzimmer battery: 84 %
2016-01-06 16:15:07 ZWave HeizungWohnzimmer setpointTemp: 22.0 C heating
2016-01-06 16:15:07 ZWave HeizungWohnzimmer ccsOverride: no, unused
2016-01-06 16:15:07 ZWave HeizungWohnzimmer wakeup: notification
2016-01-06 16:15:26 readingsGroup BatterieStatus HeizungKueche.battery: image/svg+xml       "    inkscape:connector-curvature="0" />                             
2016-01-06 16:15:26 readingsGroup BatterieStatusProzent HeizungKueche.battery: 90 %
2016-01-06 16:15:26 ZWave HeizungKueche battery: 90 %
2016-01-06 16:15:26 ZWave HeizungKueche setpointTemp: 19.0 C heating
2016-01-06 16:15:26 ZWave HeizungKueche ccsOverride: no, unused
2016-01-06 16:15:26 ZWave HeizungKueche wakeup: notification
2016-01-06 16:16:10 readingsGroup BatterieStatus HeizungSchlafzimmer.battery: image/svg+xml       "path9"    inkscape:connector-curvature="0" />                             
2016-01-06 16:16:10 readingsGroup BatterieStatusProzent HeizungSchlafzimmer.battery: 82 %
2016-01-06 16:16:10 ZWave HeizungSchlafzimmer battery: 82 %
2016-01-06 16:16:10 ZWave HeizungSchlafzimmer setpointTemp: 21.0 C heating
2016-01-06 16:16:10 ZWave HeizungSchlafzimmer ccsOverride: no, unused
2016-01-06 16:16:10 ZWave HeizungSchlafzimmer wakeup: notification
2016-01-06 16:17:56 readingsGroup BatterieStatus HeizungBuero.battery: image/svg+xml        z"    id="path9"    inkscape:connector-curvature="0" />                         
2016-01-06 16:17:56 readingsGroup BatterieStatusProzent HeizungBuero.battery: 75 %
2016-01-06 16:17:56 ZWave HeizungBuero battery: 75 %
2016-01-06 16:17:56 ZWave HeizungBuero setpointTemp: 20.0 C heating
2016-01-06 16:17:56 ZWave HeizungBuero ccsOverride: no, unused
2016-01-06 16:17:56 ZWave HeizungBuero wakeup: notification
2016-01-06 16:18:01 readingsGroup BatterieStatus HeizungBad.battery: image/svg+xml         inkscape:connector-curvature="0" />                             
2016-01-06 16:18:01 readingsGroup BatterieStatusProzent HeizungBad.battery: 88 %
2016-01-06 16:18:01 ZWave HeizungBad battery: 88 %
2016-01-06 16:18:01 ZWave HeizungBad setpointTemp: 20.0 C heating
2016-01-06 16:18:01 ZWave HeizungBad ccsOverride: no, unused
2016-01-06 16:18:01 ZWave HeizungBad wakeup: notification
2016-01-06 16:20:01 readingsGroup BatterieStatus HeizungWohnzimmer.battery: image/svg+xml                                     
2016-01-06 16:20:01 readingsGroup BatterieStatusProzent HeizungWohnzimmer.battery: 84 %
2016-01-06 16:20:01 ZWave HeizungWohnzimmer battery: 84 %
2016-01-06 16:20:01 ZWave HeizungWohnzimmer setpointTemp: 22.0 C heating
2016-01-06 16:20:01 ZWave HeizungWohnzimmer ccsOverride: no, unused


Das Ergebniss sieht gut aus, aber warum heisst es manchmal nur:
2016-01-06 16:20:01 readingsGroup BatterieStatus HeizungWohnzimmer.battery: image/svg+xml 

und dann wieder:
2016-01-06 16:15:07 readingsGroup BatterieStatus HeizungWohnzimmer.battery: image/svg+xml       ath9"    inkscape:connector-curvature="0" />   

Auch der rest dieser Zeilen sieht für mich komisch aus.

JoeALLb

Zur Vereinfachung habe ich im ThermostatBad ein Reading mit dem Namen des zugehörigen Fenster/Rollo.

Nun möchte ich in einer Readingsgroup der Thermostate gerne den Status des Rollos anzeigen.
Um nicht alle Rollos von Hand eingeben zu müssen würde ich gerne aus dem Reading "myFenster", das den Namen des Devices enthält, die Daten übernehmen.

So ähnlich hätte ich mir das vorgestellt.

position@<&device{myFenster}>

Nun die Frage: Ist so etwas möglich?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

justme1968

die syntax ist so <reading>@<device>, wobei <device> auch mit {} eingeschlossener perl code sein darf. zwischen den {} darf kein leerzeichen stehen. deshalb ist es das einfachste eine routine aufzurufen. also etwa so <reading>@{myRolloOfThermostat($DEVICE)}.

myRolloOfThermostat musst du dann selber bauen.

im wiki gibt es beispiele.

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

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

JoeALLb

Zitat von: justme1968 am 11 Januar 2016, 16:43:11
die syntax ist so <reading>@<device>, wobei <device> auch mit {} eingeschlossener perl code sein darf. zwischen den {} darf kein leerzeichen stehen. deshalb ist es das einfachste eine routine aufzurufen. also etwa so <reading>@{myRolloOfThermostat($DEVICE)}.

myRolloOfThermostat musst du dann selber bauen.

im wiki gibt es beispiele.

Danke, klappt. eigentlich hatte ich es so auch schon versucht... aber irgendwo war wohl ein Fehler mit drin. Mir war der Zusammenhang hier mit den ">" nicht ganz klar,
speziell bei <reading>  im Beispiel  <reading>@{myRolloOfThermostat($DEVICE)}
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

rippi46

Zitat von: Xaser am 01 Januar 2016, 10:58:09
Hallo.

Ich habe zwei Fragen zu den readingsGroup.

Ich habe mir eine Heizungssteuerung (ähnlich den Artikel im Wiki) zusammen gebaut:

Internals:
   DEF        <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil>,<Modus>,<Bat>,<RSSI>,<LF>
Wandthermostat_Wohnzimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Wohnzimmer","temperature","")}>,<>,mode,battery,RSSI,<{ReadingsVal("Temperatur_Wohnzimmer","humidity","")}>
Thermostat_Wohnzimmer1:desiredTemperature,<>,<>,valveposition,mode,battery,RSSI
Thermostat_Wohnzimmer2:desiredTemperature,<>,<>,valveposition,mode,battery,RSSI
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Kueche:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Kueche","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Kueche","humidity","")}>
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Schlafzimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Schlafzimmer","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Schlafzimmer","humidity","")}>
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Bad:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Bad","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Bad","humidity","")}>
<>,<>,<>,<>,<>,<>,<>,<>
Thermostat_Arbeitszimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Arbeitszimmer","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Arbeitszimmer","humidity","")}>
   NAME       heatingInfo
   NR         386
   NTFY_ORDER 50-heatingInfo
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Thermostat_Arbeitszimmer 1
     Thermostat_Bad 1
     Thermostat_Kueche 1
     Thermostat_Schlafzimmer 1
     Thermostat_Wohnzimmer1 1
     Thermostat_Wohnzimmer2 1
     Wandthermostat_Wohnzimmer 1
   Content2:
   DEVICES:
     ARRAY(0x3106cd0)
     ARRAY(0x318eca0)
     ARRAY(0x2e1f7f0)
     ARRAY(0x3be3088)
     ARRAY(0x4073178)
     ARRAY(0x37fa338)
     ARRAY(0x2bbcfb0)
     ARRAY(0x3f240f8)
     ARRAY(0x3c86250)
     ARRAY(0x2ef8b08)
     ARRAY(0x3974108)
     ARRAY(0x37a9c48)
   Fhem:
     lastDefChange 38
     last_update 1451562997.05122
   Helper:
     DEF
     Commands:
       heatingInfo.sollsetz desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0
       mode.auto  set %DEVICE desiredTemperature manual
       mode.manual set %DEVICE desiredTemperature auto
     Positions:
       Thermostat_Arbeitszimmer.RSSI 12:7
       Thermostat_Arbeitszimmer.battery 12:6
       Thermostat_Arbeitszimmer.desiredTemperature 12:1
       Thermostat_Arbeitszimmer.mode 12:5
       Thermostat_Arbeitszimmer.valveposition 12:4
       Thermostat_Bad.RSSI 10:7
       Thermostat_Bad.battery 10:6
       Thermostat_Bad.desiredTemperature 10:1
       Thermostat_Bad.mode 10:5
       Thermostat_Bad.valveposition 10:4
       Thermostat_Kueche.RSSI 6:7
       Thermostat_Kueche.battery 6:6
       Thermostat_Kueche.desiredTemperature 6:1
       Thermostat_Kueche.mode 6:5
       Thermostat_Kueche.valveposition 6:4
       Thermostat_Schlafzimmer.RSSI 8:7
       Thermostat_Schlafzimmer.battery 8:6
       Thermostat_Schlafzimmer.desiredTemperature 8:1
       Thermostat_Schlafzimmer.mode 8:5
       Thermostat_Schlafzimmer.valveposition 8:4
       Thermostat_Wohnzimmer1.RSSI 3:7
       Thermostat_Wohnzimmer1.battery 3:6
       Thermostat_Wohnzimmer1.desiredTemperature 3:1
       Thermostat_Wohnzimmer1.mode 3:5
       Thermostat_Wohnzimmer1.valveposition 3:4
       Thermostat_Wohnzimmer2.RSSI 4:7
       Thermostat_Wohnzimmer2.battery 4:6
       Thermostat_Wohnzimmer2.desiredTemperature 4:1
       Thermostat_Wohnzimmer2.mode 4:5
       Thermostat_Wohnzimmer2.valveposition 4:4
       Wandthermostat_Wohnzimmer.RSSI 2:7
       Wandthermostat_Wohnzimmer.battery 2:6
       Wandthermostat_Wohnzimmer.desiredTemperature 2:1
       Wandthermostat_Wohnzimmer.mode 2:5
     Values:
       formated:

         ARRAY(0x3cd7d88)


         ARRAY(0x3f225b8)
         ARRAY(0x3389278)
         ARRAY(0x4014f98)
         ARRAY(0x291c0a8)
       orig:

         ARRAY(0x3f230e8)


         ARRAY(0x2a77778)
         ARRAY(0x3f98438)
         ARRAY(0x3be7ce8)
         ARRAY(0x3c56980)
       prefixsuffix:

         ARRAY(0x3c42d88)


         ARRAY(0x3817830)
         ARRAY(0x37d1148)
         ARRAY(0x4014a88)
         ARRAY(0x3dd5268)
Attributes:
   commands   {
'heatingInfo.sollsetz'=>'desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0',
"mode.manual"=>"set %DEVICE desiredTemperature auto","mode.auto"=>"set %DEVICE desiredTemperature manual",
}
   room       30_Heizung


1. Ich möchte nun die Heizung immer über den Befehl "desiredTemperature auto" + die gewünschte Temperatur ansprechen. Wenn ich das "auto" nicht mit sende, springt das Thermostat immer in den Manuell Modus. Wie bekomme ich das hin? Ich habe jetzt schon einiges Probiert, allerdings komme ich einfach nicht auf das gewünschte Ergebnis.

2.Ich frage meine Raum-Temperaturen mit <{ReadingsVal("Temperatur_Wohnzimmer","temperature","")}> ab. Jetzt ist mir aufgefallen das er die neuen Temperaturen nur dann aktualisiert, wenn ich am Thermostat eine neue Temperatur eingebe oder die Seite aktualisiere. Eine automatische Aktualisierung funktioniert hier irgendwie nicht. Muss ich noch irgendwas ändern oder ggf. den Code ändern?

Hallo Xaser habe dir hier geantwortet; vielleicht ist das eine Lösung.http://forum.fhem.de/index.php/topic,46418.0.html
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

pappn

Hallo

habe ein kleines Problem. Seit ich diese ReadingsGroup definiert habedefine wetter_readings readingsGroup cp_S300TH:<Temperatur&nbsp;;Carport>,temperature \
cp_S300TH:<Durchschnittstemperatur>,T_avg_day \
<hr> \
ozw672:<Aussentemperatur>,Aussentemperatur \
ozw672:<Durchschnittstemperatur>,Aussentemperatur_avg_day
bekomme ich beim Aufruf immer 2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2737) line 1.
2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2738) line 1.
2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2739) line 1.
2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2740) line 1.
im log. Mit stacktrace erhalte ich:2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2737) line 1.
2016.01.17 13:11:06 3: stacktrace:
2016.01.17 13:11:06 3:     main::__ANON__                      called by (eval 2737) (1)
2016.01.17 13:11:06 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2016.01.17 13:11:06 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (525)
2016.01.17 13:11:06 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (1000)
2016.01.17 13:11:06 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1089)
2016.01.17 13:11:06 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (2715)
2016.01.17 13:11:06 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1531)
2016.01.17 13:11:06 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (889)
2016.01.17 13:11:06 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (444)
2016.01.17 13:11:06 3:     main::FW_Read                       called by fhem.pl (3162)
2016.01.17 13:11:06 3:     main::CallFn                        called by fhem.pl (658)
2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2738) line 1.
2016.01.17 13:11:06 3: stacktrace:
2016.01.17 13:11:06 3:     main::__ANON__                      called by (eval 2738) (1)
2016.01.17 13:11:06 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2016.01.17 13:11:06 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (525)
2016.01.17 13:11:06 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (1000)
2016.01.17 13:11:06 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1089)
2016.01.17 13:11:06 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (2715)
2016.01.17 13:11:06 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1531)
2016.01.17 13:11:06 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (889)
2016.01.17 13:11:06 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (444)
2016.01.17 13:11:06 3:     main::FW_Read                       called by fhem.pl (3162)
2016.01.17 13:11:06 3:     main::CallFn                        called by fhem.pl (658)
2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2739) line 1.
2016.01.17 13:11:06 3: stacktrace:
2016.01.17 13:11:06 3:     main::__ANON__                      called by (eval 2739) (1)
2016.01.17 13:11:06 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2016.01.17 13:11:06 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (525)
2016.01.17 13:11:06 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (1000)
2016.01.17 13:11:06 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1089)
2016.01.17 13:11:06 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (2715)
2016.01.17 13:11:06 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1531)
2016.01.17 13:11:06 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (889)
2016.01.17 13:11:06 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (444)
2016.01.17 13:11:06 3:     main::FW_Read                       called by fhem.pl (3162)
2016.01.17 13:11:06 3:     main::CallFn                        called by fhem.pl (658)
2016.01.17 13:11:06 1: PERL WARNING: Useless use of private variable in void context at (eval 2740) line 1.
2016.01.17 13:11:06 3: stacktrace:
2016.01.17 13:11:06 3:     main::__ANON__                      called by (eval 2740) (1)
2016.01.17 13:11:06 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2016.01.17 13:11:06 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (525)
2016.01.17 13:11:06 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (1000)
2016.01.17 13:11:06 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1089)
2016.01.17 13:11:06 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (2715)
2016.01.17 13:11:06 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1531)
2016.01.17 13:11:06 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (889)
2016.01.17 13:11:06 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (444)
2016.01.17 13:11:06 3:     main::FW_Read                       called by fhem.pl (3162)
2016.01.17 13:11:06 3:     main::CallFn                        called by fhem.pl (658)

Kann mir jemand helfen herauszufinden woran das liegt?
Danke
Christof
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

justme1968

die warnung kommt aus deinem valueFormat. das hast du leider nicht gezeigt.

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

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

pappn

#1495
Oh, darauf wäre ich nicht gekommen. Valueformat ist:
{$READING => "%.1f °C"}

Christof
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

justme1968

{$READING => "%.1f °C"} funktioniert nicht. wenn es für jedes reading gelten soll reicht attr <rg> valueFormat %.1f °C

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

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

pappn

Super, Danke Andre.

Interessant ist allerdings, dass das Ergebnis passt. Nur die Perl Warnung kommt dazu.
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

limats

Hallo zusammen,

ich habe eine Frage zum Performance-Tuning von readingsGroup.

In einem anderen Thread (http://forum.fhem.de/index.php/topic,32382.0.html)  wurde folgende readingsGroup zur Müllabfuhrvisualisierung veröffentlicht:


define rgAbfallkalender readingsGroup abfallkalender:!title\
abfallkalender:!day|0,!Restabfall|0,!Leichtverpackungen|0,!Papier|0,!Bioabfall|0,!O-Tonne|0,!Tannenbaum|0\
abfallkalender:!day|1,!Restabfall|1,!Leichtverpackungen|1,!Papier|1,!Bioabfall|1,!O-Tonne|1,!Tannenbaum|1\
abfallkalender:!day|2,!Restabfall|2,!Leichtverpackungen|2,!Papier|2,!Bioabfall|2,!O-Tonne|2,!Tannenbaum|2\
abfallkalender:!day|3,!Restabfall|3,!Leichtverpackungen|3,!Papier|3,!Bioabfall|3,!O-Tonne|3,!Tannenbaum|3\
abfallkalender:!day|4,!Restabfall|4,!Leichtverpackungen|4,!Papier|4,!Bioabfall|4,!O-Tonne|4,!Tannenbaum|4\
abfallkalender:!day|5,!Restabfall|5,!Leichtverpackungen|5,!Papier|5,!Bioabfall|5,!O-Tonne|5,!Tannenbaum|5\
abfallkalender:!day|6,!Restabfall|6,!Leichtverpackungen|6,!Papier|6,!Bioabfall|6,!O-Tonne|6,!Tannenbaum|6\
abfallkalender:!day|7,!Restabfall|7,!Leichtverpackungen|7,!Papier|7,!Bioabfall|7,!O-Tonne|7,!Tannenbaum|7\
abfallkalender:!day|8,!Restabfall|8,!Leichtverpackungen|8,!Papier|8,!Bioabfall|8,!O-Tonne|8,!Tannenbaum|8\
abfallkalender:!day|9,!Restabfall|9,!Leichtverpackungen|9,!Papier|9,!Bioabfall|9,!O-Tonne|9,!Tannenbaum|9\
abfallkalender:!day|10,!Restabfall|10,!Leichtverpackungen|10,!Papier|10,!Bioabfall|10,!O-Tonne|10,!Tannenbaum|10\
abfallkalender:!day|11,!Restabfall|11,!Leichtverpackungen|11,!Papier|11,!Bioabfall|11,!O-Tonne|11,!Tannenbaum|11\
abfallkalender:!day|12,!Restabfall|12,!Leichtverpackungen|12,!Papier|12,!Bioabfall|12,!O-Tonne|12,!Tannenbaum|12\
abfallkalender:!day|13,!Restabfall|13,!Leichtverpackungen|13,!Papier|13,!Bioabfall|13,!O-Tonne|13,!Tannenbaum|13\
abfallkalender:!day|14,!Restabfall|14,!Leichtverpackungen|14,!Papier|14,!Bioabfall|14,!O-Tonne|14,!Tannenbaum|14
attr rgAbfallkalender alias Müllabfuhr
attr rgAbfallkalender cellStyle { "r:1"=>'style="font-weight:bold;;font-size:16px"',"c:1"=>'style="font-weight:bold;;text-align:right;;padding-left:28pt;;"'}
attr rgAbfallkalender nonames 1
attr rgAbfallkalender room Information
attr rgAbfallkalender valueColumns { title => 'colspan="7"' }
attr rgAbfallkalender valueFormat {if($READING eq 'title'){$VALUE="recycling"}else{my($r,$d)=split(/\|/,$READING);;;;my $v=fhem("get abfallkalender days $d",1);;;;if($v eq "none"){$VALUE=undef}else{if($r eq 'day'){if($d==0){$VALUE="Heute"}elsif($d==1){$VALUE="Morgen"}else{$VALUE="in $d Tagen"}}else{if($v=~m/$r/){$VALUE=1}else{$VALUE=' '}}}}}
attr rgAbfallkalender valueIcon {if($VALUE eq 'recycling'){$VALUE}elsif($VALUE eq 1){if($READING=~m/Restabfall/){$VALUE='bag'}elsif($READING=~m/Leichtverpackungen/){$VALUE='bag@FFFF00'}elsif($READING=~m/Papier/){$VALUE='bag@01A3F5'}elsif($READING=~m/Bioabfall/){$VALUE='bag@04D921'}elsif($READING=~m/O-Tonne/){$VALUE='dustbin@FF6D00'}elsif($READING=~m/Tannenbaum/){$VALUE='christmas_tree@2B6B17'}}else{$VALUE=''}}
attr rgAbfallkalender valueSuffix {'title'=>' Müllabfuhr'}


Durch den Code im valueFormat wird der Aufruf "fhem("get abfallkalender days $d",1)" für jede Spalte wiederholt und damit jeweils 7 mal mit den identischen Parametern aufgerufen.
Gibt es eine Möglichkeit das irgendwie zu verhindern? Also quasi eine Hilfsvariable, die nur einmal pro Zeile berechnet wird.

Gruß
Leo
Fhem auf BBB:
HM-CFG-USB für div. HM-Sensoren, CUL+WMBUS für EnergyCam, Nanocul für IT, Arduino Mega 2560 als 1-wire-Gateway und für div. digitale Ein-/Ausgänge, Volkszähler-USB-IR-Lesekopf mit SMLUSB, Solarsteuerung über VBUS

justme1968

den wert ein mal nachts holen und in einen dummy stecken. in der readingsGroup dann den dummy verwenden.

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

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