FHEM Forum

FHEM => Automatisierung => Thema gestartet von: TiPpFeHlEr am 25 Februar 2022, 17:49:23

Titel: [gelöst] kompliziertes reading macht Probleme
Beitrag von: TiPpFeHlEr am 25 Februar 2022, 17:49:23
Hi Leute,

ich habe da ein reading eines ECMD Devices mit dem reading
setstate Fehler 2022-02-25 17:40:29 state Error -;;-;;-;;-;;-\
die eigentlichen Daten, die von meiner Heizung kommen, sind folgende: "-;-;-;-;-\n\n"

nun versuche ich mir diese Daten in einem DOIF per Telegram zu senden.
({ my $state = ReadingsVal("Fehler","Error",0);fhem("set teleBot send Heizung Fehler: $state ");};)
Hier bekomme ich folgenden Fehler
{ my $state = ReadingsVal("Fehler","Error",0);fhem("set teleBot send Heizung Fehler: $state ");}: Unknown command -, try help.
Unknown command -, try help.
Unknown command -, try help.
Unknown command -

, try help.


was muss ich machen damit ich die kompletten Daten  "-;-;-;-;-\n\n" übermittelt bekomme?

Gruß Maik
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: Otto123 am 25 Februar 2022, 18:04:50
Hallo Maik,

Du musst das/die Semikolon vor dem senden maskieren/verdoppeln -> ; -> ;;

Gruß Otto
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: TomLee am 25 Februar 2022, 18:20:10
Kannst du ein Beispiel zeigen wie du das machen würdest ?

So klappts nicht:  ;D

{ my $state = qq("-;-;-;-;-\n\n");;$state=~s/;;/;;;;/g;;fhem ("set tb_TelegramBot msg Heizung Fehler: $state")}

Die Semikola müssten wie ichs verstehe vor dem einlesen mit ReadingsVal verdoppelt werden, sonst gehts nicht weiter.
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: Otto123 am 25 Februar 2022, 18:47:24
defmod wert dummy
attr wert room Test

setstate wert 2022-02-25 18:43:54 test "-;;-;;-;;-;;-\n\n"


{my $val=ReadingsVal('wert','test','');;$val =~ s/;;/;;;;/g;;return $val}
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: TomLee am 25 Februar 2022, 18:53:55
Sag ich doch, die Semikola müssten vorher verdoppelt werden.

Probiers mal direkt, mein Beispiel klappt auch wenn ich die Senikola verdoppele.

edit:

Davon ab, das Reading müsste eh zuvor editiert/formatiert werden, kann mir nicht vorstellen das TiPpFeHlEr die Message so erhalten möchte wenn Werte vorhanden sind.
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: Otto123 am 25 Februar 2022, 19:02:51
Aber so hat er es doch. Im Reading stehen sie einzeln
Internals:
   FUUID      5c4c5665-f33f-27f7-af99-9b7bc734532e15ad
   NAME       wert
   NR         45
   STATE      ???
   TYPE       dummy
   READINGS:
     2022-02-25 18:43:54   test            "-;-;-;-;-\n\n"
Attributes:
   room       Test

Ergibt in der Raw Def doppelt siehe mein Beispiel
Und für den test in der Kommandozeile muss wieder alles doppelt - damits einfach wird
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: TomLee am 25 Februar 2022, 19:16:22
Ja, Raw Def  ::) , dein Beispiel klappt.

Direkt, ohne Reading (ReadingsVal,in der Kommandozeile) bekomm ichs nicht hin:

{ my $state = '"-;-;-;-;-\n\n"');;$state=~s/;;/;;;;/g;;fhem ("set tb_TelegramBot msg Heizung Fehler: $state")}
{ my $state = q("-;-;-;-;-\n\n");;$state=~s/;;/;;;;/g;;fhem ("set tb_TelegramBot msg Heizung Fehler: $state")}
{ my $state = qq("-;-;-;-;-\n\n");;$state=~s/;;/;;;;/g;;fhem ("set tb_TelegramBot msg Heizung Fehler: $state")}
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: Otto123 am 25 Februar 2022, 19:27:27
klar weil Du Deinen String "Kommandozeilengerecht" schreiben musst. ;)

@Maik Du musst in Deinen Code in der DEF einfügen:

({ my $state = ReadingsVal("Fehler","Error",0); $state =~ s/;/;;/g; fhem("set teleBot send Heizung Fehler: $state ");};)
Titel: Antw:kompliziertes reading macht Probleme
Beitrag von: TiPpFeHlEr am 25 Februar 2022, 20:03:05
Danke Euch allen,

wieder was gelernt  ;)

Gruß Maik