FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: canis am 13 Mai 2021, 10:49:04

Titel: Hi, ich brauche mal Hilfe zu GetHttpFile
Beitrag von: canis am 13 Mai 2021, 10:49:04
Um den Bierverbrauch zu überwachen, habe ich einen Durchlußmesser an einen Wemos D1 mini mit Tasmota gehangen
und lasse darauf einen Counter die Impulse des Durchlußmessers zählen, die regelmäßig von FHEM ausgelesen
und in einem Dummy gespeichert werden.
Jeden Tag wird das mit
{ GetHttpFile("192.168.211.173:80", "/cm?cmnd=Counter1%20%200")}
wieder auf 0 gestellt. Das funktioniert.
Allerdings, wenn der Wemos bei Reinigung etc. vom Netz getrennt wird, vergißt er den aktuellen Counter- Wert,
nun habe ich versucht, wenn der Wemos online geht, den Dummywert wie oben zurückzuschreiben, aber dieses Konstrukt
(Bierzaehler:tele:.Online) {
my $biercounter = Value("Bier_Counter");
{ GetHttpFile("192.168.211.173:80", "/cm?cmnd=Counter1%20%20"$biercounter)}
}
funktioniert nicht.
Wie bekomme ich den Wert von dem Dummy Bier_Counter in den GetHttpFile hinein?
Vielen Dank für jede Hilfe
Titel: Antw:Hi, ich brauche mal Hilfe zu GetHttpFile
Beitrag von: betateilchen am 13 Mai 2021, 11:05:11
schreib die Variable mal vor das letzte Anführungszeichen, nicht dahinter.

(Und mit Value() zu arbeiten, ist grundsätzlich eine ziemlich schlechte Idee.)
Titel: Antw:Hi, ich brauche mal Hilfe zu GetHttpFile
Beitrag von: canis am 13 Mai 2021, 11:20:54
Danke der Antwort,
{ GetHttpFile("192.168.211.173:80", "/cm?cmnd=Counter1%20%20$biercounter")}
Das war der erste Ansatz, der aber nicht funktioniert.
Wo liegt das Problem mit Value?
Titel: Antw:Hi, ich brauche mal Hilfe zu GetHttpFile
Beitrag von: betateilchen am 13 Mai 2021, 11:39:58
In deinem letzten Codeschnipsel wird doch $biercounter gar nicht definiert? Wie soll das funktionieren?
Außerdem hast Du ein ziemliches Durcheinander bei Deiner Klammersetzung.


{
my $biercounter = ReadingsVal("Bier_Counter","state","0");
GetHttpFile("192.168.211.173:80", "/cm?cmnd=Counter1%20%20".$biercounter)
}
Titel: Antw:Hi, ich brauche mal Hilfe zu GetHttpFile
Beitrag von: betateilchen am 13 Mai 2021, 11:41:20
Zitat von: canis am 13 Mai 2021, 11:20:54
Wo liegt das Problem mit Value?

Value() arbeitet mit einem Internal (STATE), nicht mit einem Reading (state).

Da der Inhalt von STATE z.B. durch das Attribut stateFormat nahezu beliebig verändert werden kann, sollte man sich nie darauf verlassen, dass dort immer das drinsteht, was Du erwartest.
Titel: Antw:Hi, ich brauche mal Hilfe zu GetHttpFile
Beitrag von: TomLee am 13 Mai 2021, 11:45:45
Unabhängig der Verwendung von Value().

Versuchs mal so:

Zitat{ GetHttpFile("192.168.211.173:80", "/cm?cmnd=Counter1%20%20"."$biercounter")}

Die Variable muss in den zusätzlichen geschweiften Klammern des Perl-Code, meiner Erfahrung nach, in doppelten Hochkommata angegeben werden, sonst kann sie nicht aufgelöst werden.
Titel: Antw:Hi, ich brauche mal Hilfe zu GetHttpFile
Beitrag von: canis am 13 Mai 2021, 12:12:40
Danke,
my $biercounter = ReadingsVal("Bier_Counter","state","0");
GetHttpFile("192.168.211.173:80", "/cm?cmnd=Counter1%20%20".$biercounter)
Das war die Lösung, nun funktioniert es!