Ich soll den Maintainer informieren... Illegal Char bei indirekjten Zeitangaben

Begonnen von M_I_B, 18 November 2016, 10:57:34

Vorheriges Thema - Nächstes Thema

M_I_B

Moin Kinnaz, Damian,

ich bin heute auf einen Fehler gestoßen, den ich mir nicht erklären kann. Es funktioniert zwar alles, aber im Log tauchen folgende Fehlermeldungen auf:

2016.11.18 10:44:44.428 3: WARNING: unsupported character in reading a|8 (not A-Za-z/\d_\.-), notify the dummy module maintainer.
2016.11.18 10:44:44.428 3: WARNING: unsupported character in reading m|8 (not A-Za-z/\d_\.-), notify the dummy module maintainer.
2016.11.18 10:44:44.428 3: WARNING: unsupported character in reading n|8 (not A-Za-z/\d_\.-), notify the dummy module maintainer.
2016.11.18 10:44:44.429 3: WARNING: unsupported character in reading t|8 (not A-Za-z/\d_\.-), notify the dummy module maintainer.
2016.11.18 10:44:44.430 3: WARNING: unsupported character in reading a|7 (not A-Za-z/\d_\.-), notify the dummy module maintainer.
2016.11.18 10:44:44.430 3: WARNING: unsupported character in reading m|7 (not A-Za-z/\d_\.-), notify the dummy module maintainer.
2016.11.18 10:44:44.430 3: WARNING: unsupported character in reading n|7 (not A-Za-z/\d_\.-), notify the dummy module maintainer.
2016.11.18 10:44:44.430 3: WARNING: unsupported character in reading t|7 (not A-Za-z/\d_\.-), notify the dummy module maintainer.


Genau acht mal. Passt also genau zu ...

define set_311t_au_a DOIF ([311t_au:a] < 0) (set HM6TH01_4 desired-temp [311t_sl:n]) DOELSEIF ([311t_au:a] == 2) (set HM6TH01_4 desired-temp [311t_sl:a]) \
DOELSEIF ([311t_au:a] == 0 and ([[311t_at:m]|8] or [[311t_we:m]|7])) (set HM6TH01_4 desired-temp [311t_sl:m]) \
DOELSEIF ([311t_au:a] == 0 and ([[311t_at:t]|8] or [[311t_we:t]|7])) (set HM6TH01_4 desired-temp [311t_sl:t]) \
DOELSEIF ([311t_au:a] == 0 and ([[311t_at:a]|8] or [[311t_we:a]|7])) (set HM6TH01_4 desired-temp [311t_sl:a]) \
DOELSEIF ([311t_au:a] == 0 and ([[311t_at:n]|8] or [[311t_we:n]|7])) (set HM6TH01_4 desired-temp [311t_sl:n]) \
DOELSEIF ([311t_au:a] == 0 and [PTV] == 2 and [OFEN] == 0 and [?17:00-23:00]) (set HM6TH01_4 desired-temp [311t_sl:a]) \
DOELSEIF ([311t_au:a] == 0 and [PTV] == 1 and [311t_tv:state] != 0) (set HM6TH01_4 desired-temp [311t_sl:n])
attr set_311t_au_a do always
attr set_311t_au_a wait 0:0:0:0:0:0:0:[311t_tv:state]*60


... im Speziellen zu den Notierungen der indirekten Zeiten aus "311t_[at|we]:[m|t|a|n]". Im WiKi resp. der Ref zu DOIF steht u.a. ...

Indirekte Zeitangaben lassen sich mit Wochentagangaben kombinieren, z. B.:

define di_time DOIF ([[begin]-[end]|7]) (set radio on) DOELSE (set radio off)

... im direkten Vergleich dazu ...
... [[311t_at:n]|8] ...

Daher sehe ich den Unterschied zu meiner Notierung nicht, abgesehen von der Angabe des entsprechenden Readings, was m.E. genau hier die Fehlermeldung generiert.

Und nu? Ist das einfach nur nicht im DOIF als mögliche Option abgefangen oder mache ich da einen Fehler?

Damian

Naja irgendwo hast du Readings mit dem Pipe_Zeichen erzeugt. DOIF erzeugt von sich aus normalerweise nicht solche Readingnamen. Da musst du schauen, wo du sie abgelegt hast.

Solche Angaben im DOIF: 

[[311t_we:m]|7]

ist unkritisch.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

M_I_B

... ähh nö, habe ich nicht. In 311t_we:m z.B. steht im Reading "m" eine Zeit in üblicher Notation HH:MM, wie auch in allen anderen Readings. Guggst du:
Internals:
   CFGFN      /opt/fhem/_INC/3.11_Wohnen.cfg
   NAME       311t_at
   NR         1952
   STATE      &nbsp;
   TYPE       dummy
   Readings:
     2016-11-17 19:52:08   a               17:00
     2016-11-17 20:02:56   a|8             0
     2016-11-17 21:01:30   m               05:30
     2016-11-17 20:00:07   m|8             0
     2016-11-17 23:11:15   n               22:00
     2016-11-17 20:05:45   n|8             0
     2016-11-18 10:31:18   state           05:30 ° 09:00 ° 17:00 ° 22:00
     2016-11-18 10:31:18   t               09:00
     2016-11-17 20:01:57   t|8             0
Attributes:
   alias      32 Zeiten Wertktags
   group      Heizung
   readingList m t a n
   room       311 - Wohnzimmer
   setList    m:time t:time a:time n:time
   sortby     45
   stateFormat {'&nbsp;'}
   webCmd     m:t:a:n


Ahhhh! Und nu gugge ike ma dumm osser Wäsch :o Wo kommen die denn jetzt her? Kollateralschaden aus vorherigen (Fehl-)Versuchen... schätze ich mal. Ok, ich lösche die falschen Readings mal und werde berichten...


EDIT sagt: Jo, hast vollkommen recht! Dat war der Knackpunkt... Keine Ahnung, womit ich mir diese Readings da rein geholt habe. Nach Löschen und Neustart sind die nicht wieder aufgetaucht...