Thread Anfängerfrage Unterstrich (18 answers)
Opened by lern_noch at 2023-01-31 11:42

Linuxer
 2023-02-01 21:50
#194631 #194631
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Hallo,

ich schließe mich haj's Ausführungen an.

Der direkt gezeigte Code macht nichts mit den Unterstrichen. Ich vermute eher, dass die Veränderung durch die Aufrufe von ReadingsVal() oder fhem() passiert.

Ich habe bisher keine Erfahrungen mit FHEM; habe aber mal versucht im Quellcode Hinweise auf das Verhalten zu finden; leider bisher erfolglos.

Wenn FHEM durch Benutzer-Skripte erweiterbar ist, könnte das Verhalten auch durch so ein anderes Skript verursacht werden, das evtl. Funktionalitäten ändert oder einführt.


Man könnte eine Kontrollausgabe in eine weitere Datei machen... und schauen, was dort reingeschrieben wird.

Ungetestetes Beispiel:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
sub RelaisKontrolle { 
        open( my $datei,'<', 'kontrolle.lh');

        # Ausgabepfad evtl. anpassen, wenn es nicht auf Linux ist
        # Fehlerbehandlung sparen wir uns ausnahmsweise mal
        open( my $prueflog, '>', '/tmp/kontrolle.txt' );
        
        while (my $soll = <$datei>){

                if ($prueflog) { print $prueflog "GELESEN: >$soll<"; }

                chomp($soll);                         #entfernt den Zeilenumbruch

                if ($prueflog) { print $prueflog "OHNE UMBRUCH: >$soll<\n"; }

                my $ist  = $soll."k";                 #Ist - Item ist immer + "k"

                my $isoll = ReadingsVal ($soll,"state","");   #Inhalt IST - Reading
                my $iist  = ReadingsVal ($ist,"state","");    #Inhalt SOLL - Reading

                # sinnfreier Vergleich, wie von haj schon angemerkt
                if (ReadingsVal ($isoll,"state","") ne ReadingsVal ($isoll,"state","")) {
                        fhem("set pushmsg message Fehler $isoll $iist");
                }  else {
                        fhem("set pushmsg message Alles ok");
                }
        }
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Anfängerfrage Unterstrich