Hauptmenü

(gelöst) Perl Warnung

Begonnen von rud0815, 01 Mai 2017, 09:56:40

Vorheriges Thema - Nächstes Thema

rud0815

Hallo,
ich bokomme im Log häufig folgende Ausgabe:
2017.05.01 08:45:18 1: PERL WARNING: Argument "17%" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 541.
2017.05.01 08:45:18 1: PERL WARNING: Argument "17%" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1402.


Ich weis nicht, ob das mit meinen Änderungen oder mit dem FHEM Opdate zusammenhängt.

Wilhelm
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM

Shadow3561

Das liegt wahrscheinlich am "%" Zeichen in deiner deiner Readingsgroup.
Du könntest versuchen statt "ReadingsVal" das "ReadingsNum"'zu nehmen.

MfG

rud0815

Das einzigste Mal wo ich "ReadingsVal" verwende passt nicht zum Zeitstempel.
Also werde ich weitersuchen.
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM

Shadow3561

Ich denke du solltest erst mal schauen was überhaupt den Wert '17%' ausgibt.
Von dort aus kann man die Suche dann beginnen.

Mfg

CoolTux

Zeige doch einfach mal ein list Deiner ReadingsGroup
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rud0815

in meiner ReadingGroup verwende ich ReadingsVal nicht.
Siehe:
define FHT_Heizung readingsGroup <%sani_heating_temp>,<Isttemperatur>,<Solltemperatur>,<Ventilstellung>,<Fenster>,<Batterie>,<Mode> TYPE=FHT:measured-temp,desired-temp,actuator,window,[Bb]attery,mode,
attr FHT_Heizung alias Heizung
attr FHT_Heizung commands { 'desired-temp' => 'desired-temp:' }
attr FHT_Heizung group Heizungsübersicht
attr FHT_Heizung mapping %ALIAS
attr FHT_Heizung nameStyle style="color:red"
attr FHT_Heizung noheading 1
attr FHT_Heizung notime 1
attr FHT_Heizung room Allgemein
attr FHT_Heizung valueColumns { eventdescription => 'colspan="4"' }
attr FHT_Heizung valueFormat {"measured-temp" => "%.1f °C", "desired-temp" => "%.1f °C","actuator"=> "%.0f %%", "desired-temp.off" => "%s", "temperature" => "%.1f °C","humidity"=> "%.0f %%"}
attr FHT_Heizung valueIcon {'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red', 'window.closed' => 'fts_window_1w@lightgreen', 'window.open' => 'fts_window_1w_open@red'}
attr FHT_Heizung valueStyle style="text-align:center"

jedoch in einem Perl script:
sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
# interval definieren Beginn

my %interval = (
  "Aus"  => 999,
  "Eins" => 1,
  "Zwei" => 2,
  "Drei" => 3,
  "An"   => 1,
  "Ein"  => 1
  );

# interval definieren Ende


#Wasser einschalten Beginn
sub DeviceOnOff ($$$$)
{
    my($device, $duration, $work, $typ) = @_;
    my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
    my $inter    = ReadingsVal($device, "state", "Zwei");
    my $mod      = $interval{$inter};
    my $doy      = $yday+1;
    my $on       = $doy % $mod;
    Log 2, "DeviceOnOff $device $doy % $mod -> $on($inter) $typ $inter $duration";
    if ($on == 0) {
        if ($typ eq "FS"){
            fhem ("set $work on-for-timer $duration");
        }
        elsif ($typ eq "FSWeek"){
            fhem ("set $work on");
        }
        elsif ($typ eq "HMon"){
            fhem ("set $work on");
        }
        elsif ($typ eq "HMoff"){
            fhem ("set $work off");
        }



    }
}
#Wasser einschalten Ende

Dieser Script wird zu Zeiten aufgerufen die nicht zu den Log-Zeiten passen.
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM

justme1968

du verwendest für das actuator reading %.0f als
format. das reading enthält aber scheinbar ein% zeichen. also entweder %s verwenden oder selber mit sprintf und $NUM formatieren.

oder das neue replace-set-magic format verwenden um die zahl aus dem reading zu extrahieren.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rud0815

Fehler gefunden. humidity liefert eine Zahl mit%. Brauche ich garnicht maskieren, hat schon das richtige Format.
Kommt davon wenn man schamlos kopiert.

Danke für die Hilfe.
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM