Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

Motivierte linke Hände

Hi Andre,

Zitat von: justme1968 am 06 März 2015, 11:54:22
@Motivierte linke Hände: in $ROW hast du die nummer der aktuellen zeile. wenn du dein alles ok ganz ans ende stellst und davor alle zeilen leer sind ist $ROW == 1 (oder 2 wenn du überschriften hast). wenn nicht wurde vorher eine zeile angezeigt und du kannst das alles ok weg lassen.

Das klingt nach einer guten Möglichkeit. Ich habe jetzt ein wenig damit herumexperimentiert. Im valueFormat steht aktuell

{ rg_Meldungen_valueFormat($DEVICE,$READING,$VALUE,$ROW); }

und rg_Meldungen_valueFormat sieht so aus:

sub rg_Meldungen_valueFormat($$$$) {
  my ($DEVICE,$READING,$VALUE,$ROW) = @_;

  if ($DEVICE ne "dum_leere_Liste") {
    if (($VALUE eq "closed") || ($VALUE eq "dry") || ($VALUE eq "nein") || ($VALUE eq "ok")) {
      return undef;
    } else {
      if (index($DEVICE, 'Sens_') != -1) {
        if ((ReadingsVal($DEVICE,"temperature","999")-$VALUE) < 3) {
          return "&nbsp";
        } else {
          return undef;
        }
      } else {
        return $VALUE;
      }
    }
  } else {
    Log 1, ("rg_Meldungen_valueFormat: ROW >$ROW<");
    if (($ROW eq "2") || ($ROW eq "1")) {
      return "&nbsp";
    } else {
      return undef;
    }
  }
}


Du siehst den Log-Befehl. Lt. diesem ist $ROW leer:

2015.03.08 08:58:22 1: rg_Meldungen_valueFormat: ROW ><

(Ja, ich weiß, dass der Test auf $ROW 1 oder 2 noch nicht ganz passt, das ist noch Teil der Versuche, das überhaupt ans Laufen zu bringen.  :))

Einen schönen Sonntag, und ich finde es wirklich beeindruckend, wie viel Du an allen Ecken zu FHEM beiträgst - durch diverse Module wie auch durch die dauerhafte, sehr schnellen und hilfreichen Support hier. Respekt!
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Elektrolurch

Hallo Andre,

noch Mal zu meinem Beitrag 1202, bei dem ich in der readingsGroup readings für die Ausgabensteuerung hinterlegen möchte.
Den Fehler, dass

define meine_rg readingsGroup meine_rg:Ansicht  [A-Z][a-z]_Fenster:state....

zur Ausgabe von "state" der readingsGroup führte, habe ich gefunden:

attr meine_rg valueIcon %devStateIcon

muss natürlich jetzt

attr meine_rg valueIcon{'state' => '%devStateIcon'}
heißen...
Da die rg kein devStateIcon hat, kommt statt dessen der Text von "state" und nicht der Wert von "Ansicht". Da erst Mal drauf kommen.... :-)

ok.
Was aber trotzdem nun nicht geht ist:

attr meine_rg commands {'Ansicht' => 'Ansicht:alle,offene,geschlossene'}

weil in
sub readingsGroup_set

"Ansicht" als "unbekannt" gemeldet wird und das notify auf

define meine_rg_not notify meine_rg:Ansicht.* {perl-code...}

daher nicht mehr angesprungen wird.

Mit "setreading meine_rg Ansicht alle" kann man zwar das reading setzen, aber nicht über die fhem-Oberfläche per Menü (bzw. attr meine_rg commands ...).

Ich fände es allerdings ganz chic, wenn man in der rg readings für die individuelle Ausgabensteuerung  hinterlegen könnte, ansonsten müsste man überall extra dummys anlegen.

In der sub readingsGroup_set

habe ich am Schluß mal folgende Zeile eingefügt:

return undef if(exists($hash->{READINGS}{$cmd}));
  return "Unknown argument $cmd, choose one of $list";
} # end sub readingsGroup_set


damit werden alle readings für den set-Befehl "legalisiert" und das Menü "Ansicht" funktioniert.

Alternativ könnte man auch in der set-Routine noch auf das Attribut "setList" prüfen und die Werte dort als gültige "userreadings" zulassen.

Könnte man die obige Zeile in den Code mit aufnehmen?
Der dürfte ja nicht weiter stören und man kann readings für die Ausgabensteuerung in der rg hinterlegen und mit fhem-Mitteln ändern.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Tommy82

#1247
Hi, ich bekomme diese Meldung seit gestern im LOG
015.03.12 21:14:13.096 1: PERL WARNING: Argument "-" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 732.

Woher könnte das kommen?

Danke

EDIT

Kann man das Knob Element in einer RD nutzen? Wenn ja wie?

Danke
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

vbs

Ich habe im Moment das Problem, dass beim Aufruf meiner RG folgende Meldung im Log kommt:
2015.03.15 23:26:58 1: PERL WARNING: Use of uninitialized value $lookup in pattern match (m//) at ./FHEM/33_readingsGroup.pm line 339.

Ich habe jetzt schon ganz viele Attribute gelöscht, um das Problem einzugrenzen und ich denke im Moment, dass es an "valueFormat" liegt. Und zwar scheint es zu passieren wenn ich als valueFormat eine Perl-Funktion eingebe, die dann "undef" zurück liefert. Meines Wissens ist doch die Rückgabe von undef der Weg, um ein Reading in der RG auszublenden oder?

So sieht mein Device aus (ist eine RG für ein Enigma2-Device):
Internals:
   DEF        wz_dm7020hd:<Status>,state,<Kanal>,channel
wz_dm7020hd:,<Aktuell>,eventtitle,<Rest>,eventremaining_hr,<Dauer>,eventduration_hr
wz_dm7020hd:<Beschreibung>,eventdescription
wz_dm7020hd:,<Nächste>,eventtitle_next,<Start>,eventstart_next_hr,<Dauer>,eventduration_next_hr
wz_dm7020hd:,<HDD Kapazität>,hdd1_capacity,<Frei>,wz_dm7020hd:hdd1_free wz_dm7020hd:,<Lautstärke>,volume,<HDD>,hdd1_capacity,<Frei>,hdd1_free
wz_dm7020hd:,<Nächste&nbsp;Aufname>,recordings_next_name,<Uhrzeit>,recordings_next_hr
wz_rg_dm7020hd:,labelRec1,recordings1_name@wz_dm7020hd,recordings1_servicename@wz_dm7020hd
wz_rg_dm7020hd:,labelRec2,recordings2_name@wz_dm7020hd,recordings2_servicename@wz_dm7020hd
wz_rg_dm7020hd:,labelRec3,recordings3_name@wz_dm7020hd,recordings3_servicename@wz_dm7020hd
wz_rg_dm7020hd:,labelRec4,recordings4_name@wz_dm7020hd,recordings4_servicename@wz_dm7020hd

   NAME       wz_rg_dm7020hd
   NR         415
   NTFY_ORDER 50-wz_rg_dm7020hd
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     wz_dm7020hd 1
     wz_rg_dm7020hd 1
   Content2:
     wz_dm7020hd 1
   DEVICES:
     ARRAY(0xab81fb0)
     ARRAY(0xadf49d8)
     ARRAY(0xab81d40)
     ARRAY(0xab81f20)
     ARRAY(0xab82010)
     ARRAY(0xab81f60)
     ARRAY(0xab81f90)
     ARRAY(0xadf4f60)
     ARRAY(0xab81f00)
     ARRAY(0xadf4ab8)
     ARRAY(0xab83cb0)
   DEVICES2:
     ARRAY(0xab81fb0)
     ARRAY(0xadf49d8)
     ARRAY(0xab81d40)
     ARRAY(0xab81f20)
     ARRAY(0xab82010)
     ARRAY(0xab81f60)
     ARRAY(0xab81f90)
     ARRAY(0xadf4f60)
     ARRAY(0xab81f00)
     ARRAY(0xadf4ab8)
     ARRAY(0xab83cb0)
     ARRAY(0xadf5080)
     ARRAY(0xadf5160)
     ARRAY(0xadf50b0)
     ARRAY(0xadf51e0)
     ARRAY(0xadf51c0)
     ARRAY(0xadf5260)
     ARRAY(0xadf5240)
     ARRAY(0xadf52e0)
   Readings:
     2015-02-17 23:10:39   labelRec1       Laufende Aufnahme
     2015-02-17 23:10:43   labelRec2       Laufende Aufnahme
     2015-02-17 23:10:47   labelRec3       Laufende Aufnahme
     2015-02-17 23:10:51   labelRec4       Laufende Aufnahme
   Fhem:
     lastDefChange 1
     last_update 1426458690.09262
   Helper:
     DEF
     mapping    &nbsp;
     valueFormat {return undef}
Attributes:
   alias      Dreambox
   group      Geräte
   mapping    &nbsp;
   nostate    1
   notime     1
   room       Wohnzimmer
   valueFormat {return undef}


Normalerweise sieht der Inhalt von valueFormat natürlich anders aus, aber zum Testen habe ich mal direkt undef zurück gegeben. Wenn ich das Attribut lösche, dann kommt der Fehler auch nicht mehr.
Prinzipiell funktioniert der Mechanismus: Also wenn das Attribut vorhanden ist, dann sind alle Readings unsichtbar.
Ich kann nicht sagen, ob der Fehler jetzt erst neu ist. Ist mir vlt. vorher einfach nicht aufgefallen.

Hier der Vollständigkeit halber nochmal mein eigentliches "Produktiv"-Device:
Internals:
   DEF        wz_dm7020hd:<Status>,state,<Kanal>,channel
wz_dm7020hd:,<Aktuell>,eventtitle,<Rest>,eventremaining_hr,<Dauer>,eventduration_hr
wz_dm7020hd:<Beschreibung>,eventdescription
wz_dm7020hd:,<Nächste>,eventtitle_next,<Start>,eventstart_next_hr,<Dauer>,eventduration_next_hr
wz_dm7020hd:,<HDD Kapazität>,hdd1_capacity,<Frei>,wz_dm7020hd:hdd1_free wz_dm7020hd:,<Lautstärke>,volume,<HDD>,hdd1_capacity,<Frei>,hdd1_free
wz_dm7020hd:,<Nächste&nbsp;Aufname>,recordings_next_name,<Uhrzeit>,recordings_next_hr
wz_rg_dm7020hd:,labelRec1,recordings1_name@wz_dm7020hd,recordings1_servicename@wz_dm7020hd
wz_rg_dm7020hd:,labelRec2,recordings2_name@wz_dm7020hd,recordings2_servicename@wz_dm7020hd
wz_rg_dm7020hd:,labelRec3,recordings3_name@wz_dm7020hd,recordings3_servicename@wz_dm7020hd
wz_rg_dm7020hd:,labelRec4,recordings4_name@wz_dm7020hd,recordings4_servicename@wz_dm7020hd

   NAME       wz_rg_dm7020hd
   NR         415
   NTFY_ORDER 50-wz_rg_dm7020hd
   STATE      Initialized
   TYPE       readingsGroup
   Content:
     wz_dm7020hd 1
     wz_rg_dm7020hd 1
   Content2:
     wz_dm7020hd 1
   DEVICES:
     ARRAY(0xadc98d0)
     ARRAY(0xb0485f0)
     ARRAY(0xadc9660)
     ARRAY(0xadc9840)
     ARRAY(0xadc9930)
     ARRAY(0xadc9880)
     ARRAY(0xadc98b0)
     ARRAY(0xb048790)
     ARRAY(0xadc9820)
     ARRAY(0xb0486d0)
     ARRAY(0xadd9ca8)
   DEVICES2:
     ARRAY(0xadc98d0)
     ARRAY(0xb0485f0)
     ARRAY(0xadc9660)
     ARRAY(0xadc9840)
     ARRAY(0xadc9930)
     ARRAY(0xadc9880)
     ARRAY(0xadc98b0)
     ARRAY(0xb048790)
     ARRAY(0xadc9820)
     ARRAY(0xb0486d0)
     ARRAY(0xadd9ca8)
     ARRAY(0xb0488b0)
     ARRAY(0xb048990)
     ARRAY(0xb0488e0)
     ARRAY(0xb048a10)
     ARRAY(0xb0489f0)
     ARRAY(0xb048a90)
     ARRAY(0xb048a70)
     ARRAY(0xb048b10)
   Readings:
     2015-02-17 23:10:39   labelRec1       Laufende Aufnahme
     2015-02-17 23:10:43   labelRec2       Laufende Aufnahme
     2015-02-17 23:10:47   labelRec3       Laufende Aufnahme
     2015-02-17 23:10:51   labelRec4       Laufende Aufnahme
   Fhem:
     lastDefChange 1
     last_update 1426458950.61751
   Helper:
     DEF
     mapping    &nbsp;
     valueFormat { if($READING eq 'hdd1_capacity' or $READING eq 'hdd1_free') { return "%.2f";  } elsif( $READING eq 'volume' ) {if( ReadingsVal($DEVICE, "mute", "") eq "on") {return "mute";} else {return "%i %%";}  }elsif ($READING =~ /recordings._.*name/) { return ($VALUE eq '-')  ? undef : $VALUE;}elsif ($READING =~ /labelRec.*/) {my $no = substr($READING, 8, 1);return (ReadingsVal('wz_dm7020hd', 'recordings' . $no . '_name', '-') eq '-') ? undef : $VALUE;}}
     valueStyle { if($READING eq "hdd1_free" && $VALUE < 200){ 'style="color:red"' }elsif( $READING eq "hdd1_free" && $VALUE < 500 ){ 'style="color:orange"' }elsif( $READING eq "volume" && ReadingsVal($DEVICE, "mute", "") eq "on" ){ 'style="color:red"' }elsif( $READING =~ /recordings._.*name/ ) {'style="color:red"'}elsif( $READING =~ /labelRec./ ) {}else{ 'style="color:green"' } }
     valueSuffix { if($READING eq 'hdd1_capacity' or $READING eq 'hdd1_free') { return " GB";  } }
     Commands:
       channel    channel:
     Valuecolumns:
       eventdescription colspan="4"
     Valueicon:
       state      %devStateIcon
Attributes:
   alias      Dreambox
   commands   { channel => "channel:" }
   comment    Es müssen händisch die Readings "labelRec1" bis "labelRec4" angelegt werden. Inhalt immer "Laufende Aufnahme". Für Anzeige der letzen RG-Zeilen
   group      Geräte
   mapping    &nbsp;
   nostate    1
   notime     1
   room       Wohnzimmer
   valueColumns { eventdescription => 'colspan="4"' }
   valueFormat { if($READING eq 'hdd1_capacity' or $READING eq 'hdd1_free') { return "%.2f";  } elsif( $READING eq 'volume' ) {if( ReadingsVal($DEVICE, "mute", "") eq "on") {return "mute";} else {return "%i %%";}  }elsif ($READING =~ /recordings._.*name/) { return ($VALUE eq '-')  ? undef : $VALUE;}elsif ($READING =~ /labelRec.*/) {my $no = substr($READING, 8, 1);return (ReadingsVal('wz_dm7020hd', 'recordings' . $no . '_name', '-') eq '-') ? undef : $VALUE;}}
   valueIcon  {state => '%devStateIcon'}
   valueStyle { if($READING eq "hdd1_free" && $VALUE < 200){ 'style="color:red"' }elsif( $READING eq "hdd1_free" && $VALUE < 500 ){ 'style="color:orange"' }elsif( $READING eq "volume" && ReadingsVal($DEVICE, "mute", "") eq "on" ){ 'style="color:red"' }elsif( $READING =~ /recordings._.*name/ ) {'style="color:red"'}elsif( $READING =~ /labelRec./ ) {}else{ 'style="color:green"' } }
   valueSuffix { if($READING eq 'hdd1_capacity' or $READING eq 'hdd1_free') { return " GB";  } }

HoTi

Den Fehler von VBS habe ich leider auch schon lange drin. Bei der Müllabfuhr-Visualisierung http://forum.fhem.de/index.php?topic=32382.0
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Motivierte linke Hände

Ich glaube(!), ich hatte diesen Fehler schon bei eigenen Routinen, und zwar immer dann, wenn ich mit einem String gearbeitet habe, der bei Übergabe leer war.

Kann es sein, dass die Rückgabe von undef in Euren Beispielen dazu führt, dass die entsprechende rg komplett leer ist?

Nur 'ne Vermutung.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

vbs

Also in meinem Beispiel habe ich ja ohne String gearbeitet, aber zum Testen einfach immer "undef" zurück gegeben und da tritt es auch auf:
valueFormat {return undef}

Also die komplette RG ist bei mir dann nicht leer, sondern nur das Reading, bei dem ich undef zurück gebe (wie es ja wohl auch sein soll).

Tommy82

#1252
Hi,
ich habe über das widgetOverride Attribute in einer RG ein Knob Element definiert, allerdings passiert nichts
EDIT
hab grad gesehen das ich es über das Commands Attribut machen muss, aber dann bekomme ich für Knob Elemente angezeigt, mit je 2 unterschiedlichen Werte, was mach ich da noch falsch?

nternals:
   DEF        <Gerät>,<Soll>,<Ist>
Gaeste_WC_Clima:desired-temp,measured-temp
   NAME       rd_Gaeste_WC
   NR         240
   NTFY_ORDER 50-rd_Gaeste_WC
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Gaeste_WC_Clima 1
   Content2:
   DEVICES:
     ARRAY(0x2cfe1d8)
     ARRAY(0x2d1a788)
   Fhem:
     lastDefChange 11
     last_update 1426536777.8377
   Helper:
     DEF
     commands   desired-temp:knob,min:5,max:30,step:0.5,fgColor:#FF9900,anglearc:180,angleoffset:270,bgcolor:#9999CC,width:250,linecap:round,font:lcars,displayPrevious:true
     nameStyle  style="color:yellow;font-weight:bold"
     Mapping:
       Gaeste_WC_Clima Gäste WC
Attributes:
   commands   desired-temp:knob,min:5,max:30,step:0.5,fgColor:#FF9900,anglearc:180,angleoffset:270,bgcolor:#9999CC,width:250,linecap:round,font:lcars,displayPrevious:true
   fp_Gaeste_WC1 238,221,0,
   mapping    {'Gaeste_WC_Clima' => 'Gäste WC' }
   nameStyle  style="color:yellow;font-weight:bold"
   noheading  1
   style      style="font-size:20px;color:lightgray;text-align:left"
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

justme1968

die undef warnung sollte ab morgen weg sein.

das widgetOverride attribut ist ein globales attribut in fhem um das widget zu ändern das für das kommando eines devices verwendet wird. es wird in dem device gesetzt aus dem das kommando kommt.

die readingsGroup hat keine eigenen kommandos also macht es keinen sinn widgetOverride hier zu setzen.

die widgets die die readingsGroup für ein reading eines angezeigten devices verwendet werden über das commands attribut konfiguriert. wenn du widgetOverride im betreffenden device für ein kommando gesetzt ist sollte das übernommen werden wenn du im commands attribut kein eigenes widget angibst.

der erste fall funktioniert so:attr rd_Gaeste_WC commands { 'desired-temp' => 'desired-temp:'}
der zweite sollte so funktionieren:attr rd_Gaeste_WC commands { 'desired-temp' => 'desired-temp:knob,min:5,max:30,step:0.5,fgColor:#FF9900,anglearc:180,angleoffset:270,bgcolor:#9999CC,width:250,linecap:round,font:lcars,displayPrevious:true'}ich weiss aber nicht ganz genau ob es mit den mehrfachen : eventuell noch probleme gibt.

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

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

Joker

Hi
ich habe mal eine Frage zur Funktionsweise der Readingsgroup.
Wenn ich sowas mache:
attr rg_heatingInfo valueSuffix {"batteryLevel"=> sprintf("%.1f", ReadingsVal($DEVICE,$READING,0)) ." V" }

Dann hätte ich gedacht, das sprintf wird nur ausgeführt, wenn das Reading ein "batteryLevel" enthält. Scheinbar wird es aber für jedes Reading in der ReadingsGroup ausgeführt, denn ich erhalte solche Fehlermeldungen:
PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 23194) line 1.

Ist das so gewollt? Die batteryLevel Readings enthalten numerische Werte. Aber ich habe auch Readings, die z.B. das "auto" liefern. Wie umgehe ich das Warning jetzt am Besten? Habe zwar schon von dieser Fehlermeldung hier im Thread gelesen, aber die Lösung ist mir nicht klar...

justme1968

schau mal in dein log. da sollten noch andere meldungen stehen. unter anderem das die syntax die du verwendest falsch ist.

der teil rechts vom => wird nur für das entsprechende reading ausgeführt, aber der gesammte ausdruck wird für jedes reading ausgeführt um vom string auf den hash zu kommen in dem dann der ausdruck gesucht wird.

du solltest es etwa so schreiben:attr rg_heatingInfo valueSuffix {"batteryLevel"=> '{sprintf("%.1f", ReadingsVal($DEVICE,$READING,0)) ." V"}' }


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

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

Joker

Danke für die schnelle Antwort. Über das Logfile bin ich auf das Problem gestoßen, denn das war voll von diesen Fehlermeldungen. Allerdings finde ich sonst keine Fehlermeldungen, die wie Du sagst etwas von falscher Syntax sagen. Dies hier sind alle Fehlermeldungen die zu sehen sind wenn ich auf die Seite mit der Readingsgroup wechsle:

2015.03.18 17:33:58 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 171) line 1.
2015.03.18 17:33:58 1: PERL WARNING: Argument "off" isn't numeric in sprintf at (eval 174) line 1.
2015.03.18 17:33:58 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 189) line 1.
2015.03.18 17:33:58 1: PERL WARNING: Argument "on" isn't numeric in sprintf at (eval 192) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 207) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "on" isn't numeric in sprintf at (eval 210) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 225) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "on" isn't numeric in sprintf at (eval 228) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 243) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "off" isn't numeric in sprintf at (eval 246) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 261) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "off" isn't numeric in sprintf at (eval 264) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 279) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "off" isn't numeric in sprintf at (eval 282) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 297) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "on" isn't numeric in sprintf at (eval 300) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 315) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "off" isn't numeric in sprintf at (eval 318) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "auto" isn't numeric in sprintf at (eval 333) line 1.
2015.03.18 17:33:59 1: PERL WARNING: Argument "on" isn't numeric in sprintf at (eval 336) line 1.


Ich habe jetzt mal den Ausdruck so umgebaut wie Du gesagt hast- jetzt sind die Fehlermeldungen weg, perfekt!

Was mich noch interessieren würde, aber da weiß ich nicht ob das hier her gehört: Wieso stehen in den Warnings keine korrekten File- und Line Angaben, sondern sowas wie "at (eval 333) line 1"? Liegt das an Perl oder an Readingsgroup? Mich hat es eine ganze Weile gekostet um zu finden, wo das her kommt, gibt es da eine bessere Vorgehensweise als Trial&Error?


Tommy82

Hi,
mit
{ 'desired-temp' => 'desired-temp:knob,min:5,max:30,step:0.5,fgColor:#FF9900,anglearc:180,angleoffset:270,bgcolor:#9999CC,width:250,linecap:round,font:lcars,displayPrevious:true'}
wirds dann angezeigt, jetzt hab ich noch das Problem das "Soll"" nicht Zentriert über dem Element steht und das "IST" nicht Zentriert über der IST Teperatur steht, wie kann ich das noch hin bekommen?

Internals:
   DEF        <Soll>,<Ist>
Gaeste_WC_Clima:desired-temp,measured-temp
   NAME       rd_Gaeste_WC
   NR         240
   NTFY_ORDER 50-rd_Gaeste_WC
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Gaeste_WC_Clima 1
   Content2:
   DEVICES:
     ARRAY(0x3342c98)
     ARRAY(0x3c34448)
   Fhem:
     lastDefChange 10
     last_update 1426791966.54793
   Helper:
     DEF
     nameStyle  style="color:yellow;font-weight:bold"
     Commands:
       desired-temp desired-temp:knob,min:5,max:30,step:0.5,fgColor:#FF9900,anglearc:180,angleoffset:270,bgcolor:#9999CC,width:250,linecap:round,font:lcars,displayPrevious:true
     Mapping:
       Gaeste_WC_Clima
Attributes:
   commands   { 'desired-temp' => 'desired-temp:knob,min:5,max:30,step:0.5,fgColor:#FF9900,anglearc:180,angleoffset:270,bgcolor:#9999CC,width:250,linecap:round,font:lcars,displayPrevious:true'}
   fp_Gaeste_WC1 238,221,0,
   mapping    {'Gaeste_WC_Clima' => '' }
   nameStyle  style="color:yellow;font-weight:bold"
   noheading  1
   style      style="font-size:20px;color:lightgray;text-align:left"


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

justme1968

setz mal nonames oder setz vor das soll noch ein <>,

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Tommy82

Hi Danke,
mit einem <>, sieht es fast gut aus:-)
Ist wird jetzt schön Zentriert über der IST Temperatur angezeigt, das SOLL ist aber noch links Bündig über dem Element und nicht Zentriert
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