[Gelöst] Problem beim Nachbau einer Anleitung aus dem WIKI

Begonnen von Blablubblaber, 15 Februar 2016, 15:06:09

Vorheriges Thema - Nächstes Thema

Blablubblaber

Hallo,

ich versuche seit ein paar Tagen nach der Anleitung: http://www.fhemwiki.de/wiki/%C3%96lverbrauchsanzeige_/_Betriebsstundenz%C3%A4hler
die ich im FHEM Wiki gefunden habe eine Anzeige für mein Heizölverbrauch zu bauen leider scheitere ich immer wieder am notify.

Bis jetzt habe ich das Device ein HM-SCI-3-FM der mir immer ein on liefert wen der Brenner an ist und ein off wen der Brenner aus ist.
dann habe ich ein Log File das mir die Werte speichert und per fs206 attr auch schon eine kleine Anzeige gibt wann der Brenner an und wann er aus ist.

Nun versuche ich aber vergebens das notify zum laufen zu bekommen sowie die anzeige des Verbrauchs.

Ich hoffe mir kann hier jemand weiter helfen.

Gruß
Dennis

ph1959de

Das dürfte mit bei Fhem 5.7 aktiv gewordenen Umstellungen zu tun haben.

Ich habe das Wiki mal angepasst (im Wesentlichen "%" -> $EVENT) - bitte oben verlinkten Thread lesen, die Änderungen ausprobieren (ggf. weitere Korrekturen vornehmen) und Rückmeldung geben, ob die Seite im Wiki jetzt stimmt (bzw. weiteren Korrekturbedarf melden).

Gruß, Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Blablubblaber

danke für die schnelle Antwort.
In die richtung habe ich auch schon vermutungen gehabt und hatte ein wenig rumprobiert ich hatte es noch mit den "" geschrien gehabt also aus "%" habe ich "$EVENT" gemacht was nicht funktioniert hat.

Leider hat jetzt der versuch aus "%" zu $EVENT ohne die Zeichen auch keinen Effekt gebracht im LogFile kommen keinerlei Einträge.

Und im fhem LogFile kommt die Fehlermeldung:

2016.02.15 17:04:26 3: Brenner_Verbrauch return value: syntax error at (eval 93563) line 1, near "\if"
syntax error at (eval 93563) line 1, at EOF

ph1959de

Ich kann gerade nicht im Detail ausprobieren ... habe an anderer Stelle
if ("$EVENT" ne "off") ...
gesehen. Du müsstest jetzt selbst mal genauer in die Details reinschauen...

Gruß, Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Blablubblaber

also der aktuelle Code in meinem Notify lautet:

Brenner_Zustand {\if($EVENT eq "on") {\$data{Brenner_last} = time();\} elsif($EVENT eq "off") {\$data{Brenner_min} = (time()-$data{Brenner_last})/60*0.03333;\ fhem "trigger Brenner_Verbrauch $data{Brenner_min}";\}\}


und der erzeugt den Fehler:

2016.02.15 17:26:46 3: Brenner_Verbrauch return value: syntax error at (eval 98525) line 1, near "\if"
syntax error at (eval 98525) line 1, at EOF


Das von dir geschriebene
if ("EVENT" ne "off") ...
konnte ich nirgends finden.

Leider bin ich was das Programmieren angeht nicht so fit das ich den Fehler darin finden kann.

Der Log dazu schaut wie folgt aus
./log/Brenner-%Y-%m.log Brenner_Verbrauch

und in diesem wird lediglich der Text:
2016-02-15_15:36:52 Brenner_Verbrauch active
Angezeigt.

Gehe ich recht in der Annahme das wenn der notify richtig funktioniert das dort dann die Werte stehen müssten bezüglich des Verbrauchs?

ph1959de

Was die Syntax des if(...) angeht, bin ich ziemlich sicher, dass es
if("$EVENT" ...) heißen muss - ansonsten weiß ich über die im Wiki dargestellte Anwendung nichts. Da müsstest Du Dich, wie schon gesagt, entweder selbst durchkämpfen (empfohlene Vorgehensweise) oder warten, ob jemand anderes noch Hilfestellung geben kann.

Gruß, Peter

P.S.: in diesem Forenthread ist das Wiki-Beispiel auch schon mal thematisiert worden. Vielleicht hilft Dir das weiter.
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Blablubblaber

ok vielen dank für die Hilfe.
habe es auch mit der "$EVENT"... probiert ohne erfolg ich weis leider nicht wo der Fehler ist probiere es schon seit tagen immer wieder komme aber nicht zu einer Lösung.

Gibt es hier vielleicht noch jemand der da auch Probleme hatte und der mir helfen kann??

Wuppi68

wie erstellst Du den Code?

im Wiki mit den Backslashes sind für die CFG :-)

ohne Backslashes sind für den DEF Editor ...

versuche mal folgendes in der GUI im DEF Editor:

Brenner_Zustand {if($EVENT eq "on") {$data{Brenner_last} = time();} elsif($EVENT eq "off") {$data{Brenner_min} = (time()-$data{Brenner_last})/60*0.03333; fhem "trigger Brenner_Verbrauch $data{Brenner_min}";}}
FHEM unter Proxmox als VM

ph1959de

Ok, ich versuch's noch mal:

Verwende bitte möglichst erstmal nur die Namen aus dem Beispiel - Änderungen nur, wenn Du genau weisst, wie die Zusammenhänge sind

Das notify bitte anlegen über das Webinterface! Ins Befehlsfeld eingeben
define boiler_consumption notify fs_boiler {}
und <enter> drücken. Danach landest Du auf der Detail-Seite für das notify. Hier gibst Du im DEF Feld zwischen die geschweiften Klammern ("am Stück", ohne Zeilenumbruch!)
define boiler_consumption notify fs_boiler {if("$EVENT" eq "on") {$data{boiler_last} = time()} elsif("$EVENT" eq "off") {$data{boiler_min} = (time()-$data{boiler_last})/60*0.03626; fhem "trigger boiler_consumption $data{boiler_min}";}}
ein und klickst auf den "modify ..." Button.

Damit sollte Dein Notify korrekt erstellt sein (mein Beispiel ist wieder mit den "Original-Namen").

Sollte es dann noch nicht funktionieren, dann bitte noch mal Deine Definitionen vergleichen - irgendwelche Schreibfehler bei den Namen, ...? Zur Not die Objekte (list xxxx) noch mal posten.

Gruß, Peter

Hab gerade gesehen, dass Wuppi68 auch noch mal Kommentare abgegeben hat, lasse meine aber trotzdem mal hier stehen.
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Blablubblaber

Jetzt Funktioniert es  :)

Vielen Dank für die Hilfe.

Der entscheidende punkt war das das mit den Backslashes das habe ich nicht gewusst das es im CFG mit und im DEF Editor ohne ist.

Jetzt bekomme ich endlich werte im LogFile und kann mir den Verbrauch anzeigen lassen :)

ph1959de

Gut - dann bitte noch ein [Gelöst] vor den Threadtitel.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"