FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: Jonny1957 am 02 August 2016, 12:32:16

Titel: DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 02 August 2016, 12:32:16
Habe den Code im Fhem
define Temperatur readingsGroup .*:temperature
attr Temperatur group FBDECT
attr Temperatur notime 1
attr Temperatur room HWR
attr Temperatur style style=font-size:28px;;;;color:RoyalBlue
attr Temperatur valueFormat %.1f°;C


es funktioniert sehr gut.
Wenn da nicht die vielen Fehlermeldungen währen die die Log zumüllen.
Hab schon überall gelesen und probiert, finde keine Lösung
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171013) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171014) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171016) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171017) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171019) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171020) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171022) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171023) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171025) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171026) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171028) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171029) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171031) line 1.
2016.08.01 00:00:03 1: PERL WARNING: Argument "26.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171032) line 1.
2016.08.01 00:01:39 1: PERL WARNING: Argument "18.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171134) line 1.
2016.08.01 00:01:39 1: PERL WARNING: Argument "18.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171135) line 1.
2016.08.01 00:01:39 1: PERL WARNING: Argument "18.5 C (measured)" isn't numeric in numeric gt (>) at (eval 171137) line 1.
2016.08.01 00:01:39 1: PERL WARNING: Argument "18.5 C (measured)" isn't numeric in numeric lt (<) at (eval 171138) line 1.
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: FranzB94 am 02 August 2016, 14:20:26
Hi Jonny1957!

Der Fehler wird dir doch im Logfile angegeben! Das Original-Reading temperature wird als '22.5 C (measured)' ausgegeben und das ist ein String und nicht numerisch. Ich habe bei mir unter attr stateFormat angegenen und bekomme keine Fehlermeldungen.
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 02 August 2016, 15:12:08
ein attr stateFormat krieg ich in die readingsGroup nicht rein.
Kannst du mir mal dein Beispiel posten.
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: FranzB94 am 02 August 2016, 19:38:37
Hi Jonny1957!

Das Attribut stateFormat habe ich bei der DECT eingetragen siehe 1. Bild! das 2. Bild zeigt dein Beispiel in meiner fhem.cfg.

Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 02 August 2016, 20:46:03
ich hab das mal so eingetragen, aber die Meldungen kommen immernoch08.02 20:41:40 1: PERL WARNING: Argument "12.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39475) line 1.
2016.08.02 20:41:40 1: PERL WARNING: Argument "12.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39477) line 1.
2016.08.02 20:41:40 1: PERL WARNING: Argument "12.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39478) line 1.
2016.08.02 20:41:40 1: PERL WARNING: Argument "12.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39480) line 1.
2016.08.02 20:41:40 1: PERL WARNING: Argument "12.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39481) line 1.
2016.08.02 20:41:40 1: PERL WARNING: Argument "12.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39483) line 1.
2016.08.02 20:41:40 1: PERL WARNING: Argument "12.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39484) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39486) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39487) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39489) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39490) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39492) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39493) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39495) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39496) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39498) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39499) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric gt (>) at (eval 39501) line 1.
2016.08.02 20:42:31 1: PERL WARNING: Argument "24.5 C (measured)" isn't numeric in numeric lt (<) at (eval 39502) line 1.

jump to the top
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: justme1968 am 02 August 2016, 20:54:13
z.b. für valueFormat etwas in der art:  {temperature => '$NUM'} und für valueSuffix: {temperature => '&deg;C' }

gruss
  andre
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 03 August 2016, 21:19:55
Danke erstmal,
ich hab das versucht  :-\
Kein Erfolg.
Ich habe jetzt die readingsGroup deaktiviert und die Fehler kommen immer noch.
Jetzt verstehe Garnichts mehr. :(
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: justme1968 am 04 August 2016, 10:42:36
stacktrace einschalten und schauen wo die meldung genau her kommt.
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 04 August 2016, 12:47:47
hab ich gemacht :-\
sagt mir nichts.

2016.08.04 12:43:48 1: PERL WARNING: Argument "22.0 C (measured)" isn't numeric in numeric lt (<) at (eval 20808) line 1.
2016.08.04 12:43:48 3: stacktrace:
2016.08.04 12:43:48 3:     main::__ANON__                      called by (eval 20808) (1)
2016.08.04 12:43:48 3:     (eval)                              called by ./FHEM/98_DOIF.pm (928)
2016.08.04 12:43:48 3:     main::DOIF_CheckCond                called by ./FHEM/98_DOIF.pm (1176)
2016.08.04 12:43:48 3:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (1284)
2016.08.04 12:43:48 3:     main::DOIF_Notify                   called by fhem.pl (3199)
2016.08.04 12:43:48 3:     main::CallFn                        called by fhem.pl (3121)
2016.08.04 12:43:48 3:     main::DoTrigger                     called by fhem.pl (3441)
2016.08.04 12:43:48 3:     main::Dispatch                      called by ./FHEM/00_FBAHA.pm (344)
2016.08.04 12:43:48 3:     main::FBAHA_Read                    called by fhem.pl (3199)
2016.08.04 12:43:48 3:     main::CallFn                        called by fhem.pl (667)
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 04 August 2016, 18:22:29
ich hab jetzt rausgefunden, das es auch mit dieser Steuerung zusammen hängt:

define Funk_Steckdose_EINschalten DOIF ([FBDECT_Fritzbox_16:temperature] < 15.0) (set SteckdoseTruhe on)
define Funk_Steckdose_AUSschalten DOIF ([FBDECT_Fritzbox_16:temperature] > 20.0) (set SteckdoseTruhe off)

vielleicht seht ihr da ein Fehler!
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: FranzB94 am 04 August 2016, 19:42:53
Hi Jonny1957!

Es geht immernoch um den gleichen Sachverhalt wie von mir bereits in #1 beschrieben!
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 04 August 2016, 21:44:27
Ja, es geht immer noch um den gleichen Fehler und die Fehlermeldung bleiben :-\
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: krikan am 05 August 2016, 11:10:53
Wenn ich die DOIF-commandref (http://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen) richtig verstehe, dann bitte zum Auslesen des im Reading enthaltenen Zahlenwertes :d anhängen.
Also mal so etwas probieren (ungetestet), damit die Warnung verschwindet:

define Funk_Steckdose_EINschalten DOIF ([FBDECT_Fritzbox_16:temperature:d] < 15.0) (set SteckdoseTruhe on)
define Funk_Steckdose_AUSschalten DOIF ([FBDECT_Fritzbox_16:temperature:d] > 20.0) (set SteckdoseTruhe off)


Gruß, Christian
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 05 August 2016, 12:23:49
Vielen, vielen Dank.
Die Flut an Meldung ist weg ;D
2016.08.05 12:03:02 1: PERL WARNING: Argument "24.0 C (measured)" isn't numeric in numeric lt (<) at (eval 15536) line 1.
2016.08.05 12:03:02 1: PERL WARNING: Argument "24.0 C (measured)" isn't numeric in numeric gt (>) at (eval 15538) line 1.
2016.08.05 12:03:02 1: PERL WARNING: Argument "24.0 C (measured)" isn't numeric in numeric lt (<) at (eval 15539) line 1.
2016.08.05 12:03:02 1: PERL WARNING: Argument "24.0 C (measured)" isn't numeric in numeric gt (>) at (eval 15541) line 1.
2016.08.05 12:03:02 1: PERL WARNING: Argument "24.0 C (measured)" isn't numeric in numeric lt (<) at (eval 15542) line 1.


jetzt kommen nur wenige Meldungen, mit den kann ich leben  ::)

2016.08.05 12:05:48 1: PERL WARNING: Argument "13.5 C (measured)" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 525.
2016.08.05 12:07:02 1: PERL WARNING: Argument "24.0 C (measured)" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1255.
2016.08.05 12:13:40 1: PERL WARNING: Argument "13.5 C (measured)" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1255.

Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: krikan am 05 August 2016, 12:38:10
Zitat von: Jonny1957 am 05 August 2016, 12:23:49
jetzt kommen nur wenige Meldungen, mit den kann ich leben  ::)
Na ja  ;)
Hilft dagegen nicht der Vorschlag von Andre aus Antwort #5 (die genannten Attribute in der readingsGroup setzen)?
Hast Du das noch einmal probiert?
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: krikan am 05 August 2016, 18:22:38
In der readingsGroup die Attribute bitte so setzen, damit die Warnungen verschwinden (bei valueFormat um $NUM einfache Anführungszeichen weglassen):

attr Temperatur valueFormat {temperature=>$NUM}
attr Temperatur valueSuffix {temperature=>'&deg;C'}
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: Jonny1957 am 05 August 2016, 19:06:13
Ich hab was probiert, muss aber gestehen bin absoluter Frischling was Fhem oder Perl angeht.
Vielen Dank nochmal.
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: justme1968 am 05 August 2016, 19:12:37
die einfachen ' müssen in diesem fall da hin. die variable soll nicht ersetz werden wenn das attribut geparsed wird sondern später zur laufzeit für jedes device.

warum nimmst du es nicht 1:1 und postest was passiert?
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: krikan am 05 August 2016, 21:02:06
@Andre:
Verstehe ich nicht, hatte Deine Variante mit ' getestet und Ergebnis war die Ausgabe von $NUM in der readingsGroup. Nur ohne ' kamen tatsaechlich Werte in der readingGroup zur Anzeige..  ???

edit: Noch mal getest und es funktioniert bei mir nur die Variante ohne ' um $NUM. Keine Ahnung, was ich anders mache.. Aber ich hatte oben einen Fehler im valueSuffix, den ich jetzt hoffentlich korrekt korrigert habe.
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: krikan am 06 August 2016, 10:40:03
Habe gestern abend die readingsGroup des TE einmal mit ' und einmal ohne ' in Attribut valueFormat angelegt, da mir das keine Ruhe lies  :) :

Mit ' wird in der readingsGroup nur der Text $NUM angezeigt. Es aendert sich daran nichts, wenn die Temperaturen sich veraendern. Es bleibt konstant $NUM.

Ohne ' wird bei Anlage des Attributs die aktuelle Temperatur angezeigt und bei jeder Veraenderung in der readingsGroup über longpoll aktualisiert.

Getestet habe ich mit einem aktuellen FHEM, bei dem readingsGroup die Version hat:
33_readingsGroup.pm  11573 2016-05-31 06:54:52Z justme1968

Also ist in meinem System die Variante ohne ' um $NUM für das gezeigte readingsGroup die funktionierende Variante und mit ' eben nicht. Sorry, ich habe keine Ahnung, was ich falsch/anders mache bzw. am Problem nicht verstehe. Es würde mich aber interessieren  :)

Gruß, Christian
Titel: Antw:DECT 200 Temp. auslesen
Beitrag von: justme1968 am 06 August 2016, 10:41:19
ich schau es mir an.

gruss
  andre