Läuft: Heizung mit eBus-Schnittstelle

Begonnen von Prof. Dr. Peter Henning, 29 November 2014, 13:36:59

Vorheriges Thema - Nächstes Thema

theotherhalf

Versuch es mal so:

# Flammensignal
get Flamme cmd {"r -f Flame UCH \n"}
get Flamme expect ".*\n*"
get Flamme postproc { $_ }


Klappt das?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

hanswerner1

klappt nicht, ERR: element not found in decode steht dann im reading

theotherhalf

in der *.inc steht es so:

r,,Flame,Flammensignal,,,,"0500",,,UCH,240=off;15=on,,Flammensignal

Du hast eine Vaillant Therme, oder?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Reinhart

Zitat von: theotherhalf am 10 Mai 2017, 20:49:00
Versuch es mal so:

# Flammensignal
get Flamme cmd {"r -f Flame UCH \n"}
get Flamme expect ".*\n*"
get Flamme postproc { $_ }


Klappt das?

Bitte keine Leerzeichen vor dem \n, da das Linefeed ja direkt nach dem Wert kommt.

zu deiner letzten Frage:
{ sprintf("%5.1f",$_) }
mit sprintf wird der Rückgabewert formatiert, "%f" = Dezimalzahl, 5= 5 stellig, .1 = ein Nachkomma
schau dazu mehr in der Perl Doc. https://perldoc.perl.org/functions/sprintf.html

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

theotherhalf

OK.
@Reinhart, kannst du nochmals auf meinen Post von 20:36:12 eingehen?

LG
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Reinhart

Zitat von: hanswerner1 am 10 Mai 2017, 20:42:57
Gibt es irgentwo eine Erklärung zu expect und postproc ?

mit postproc gibst du an wie formatiert werden soll (Ausgabefilter) und mit expect wie (nach was) gefiltert werden soll.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

Zitat von: theotherhalf am 10 Mai 2017, 21:30:38
OK.
@Reinhart, kannst du nochmals auf meinen Post von 20:36:12 eingehen?

LG

wenn du in der Konsole schon richtige Ergebnisse bekommst, dann sollte es in cfg auch funktionieren. Hast du dort eventuell auch ein Leerzeichen vor dem \? Ansonsten postproc und expect kontrollieren.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

theotherhalf

dort ist es nun:
# Temperatur Puffer an SP1
get SP1 cmd {"r -f Storage1Sensor3 temp\n"}
get SP1 expect ".*\n*"
get SP1 postproc { $_ }
#


Konsole:
pi@raspberrypi:~ $ ebusctl r -f Storage1Sensor3 temp
33.81



ECMD: SP1 ERR: element not found

Im übrigen gibt GAEBUS den Wert korrekt aus.

FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Reinhart

das ist eigentlich unlogisch, wenn die direkte Abfrage in der Konsole funktioniert sollte es auch in Fhem funktionieren.

Du könntest den Loglevel auf 5 erhöhen, eine gezielte Abfrage durchführen und ins Log schauen ob nun mehr Info kommt.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

hanswerner1

Zitat von: Reinhart am 10 Mai 2017, 21:18:45
zu deiner letzten Frage:
{ sprintf("%5.1f",$_) }
mit sprintf wird der Rückgabewert formatiert, "%f" = Dezimalzahl, 5= 5 stellig, .1 = ein Nachkomma
schau dazu mehr in der Perl Doc. https://perldoc.perl.org/functions/sprintf.html
LG

Habs mal mit { sprintf("%5.1f",$_) } versucht, klappt nicht. Habs auch mal mit { sprintf("%s",$_) } versucht, klappt auch nicht. Wenn ich mit setreading den Wert von "Flamme" reading auf off oder on setzten klappt es. Sobald der ebus abgefragt wird und das off / on vom bus kommt klappt es nicht mehr. Im reading ist nichts zu erkennen, beides mal seht on oder off drin.

theotherhalf

Zitat von: Reinhart am 11 Mai 2017, 19:08:16

Du könntest den Loglevel auf 5 erhöhen, eine gezielte Abfrage durchführen und ins Log schauen ob nun mehr Info kommt.


hab den Loglevel (verbose) auf 5 erhöht aber das brachte auch keine Änderung. Was bewirkt das denn?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

jkriegl

#2231
Sieht bei mir auf der Konsole aus als wären da 2 NlL
Meine cfg ist fast 2 Jahre alt (ohne temp, noch mit split) und da habe ich bei StorageSensor3
get P.Temp expect ".*\n\n"
und das funktioniert.
Ein Beispiel mit Parameter ("no data stored" ist noch nie aufgetreten)
# Therme Temp
get T.Temp cmd {"read -f -c bai FlowTemp temp\n"}
get T.Temp expect ".*\n\n"
get T.Temp postproc { my $rval;\
  if(($_ eq "")||($_ eq "no data stored") ){\
    $rval = "err";\
  }else{\
    $rval=sprintf("%.1f",$_);\
  }\
$rval; }
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Reinhart

#2232
Zitat von: theotherhalf am 12 Mai 2017, 09:32:42
hab den Loglevel (verbose) auf 5 erhöht aber das brachte auch keine Änderung. Was bewirkt das denn?

damit du im Fhem Log mehr Meldungen bekommst, die vielleicht auf den Fehler besser hindeuten!


und mach doch einmal den Versuch und lasse bei der Abfrage das \n ganz weg, also so:
get SP1 cmd {"r -f Storage1Sensor3 temp"}


LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

theotherhalf

Zitat von: Reinhart link=topic=29737.msg634232#msg634232 date=1494582541


und mach doch einmal den Versuch und lasse bei der Abfrage das \n ganz weg, also so:
code]get SP1 cmd {"r -f Storage1Sensor3 temp"}[/code]


Ändere ich den Loglevel auf ändert sich nicht viel, die Meldung im Log ist diese:

2017-05-12 12:17:10 ECMD EBUS FAILED
2017-05-12 12:17:13 ECMD EBUS DISCONNECTED
2017-05-12 12:17:13 ECMDDevice SP1 SP1: ERR: element not found 
2017-05-12 12:17:13 ECMDDevice SP1 SP1 ERR: element not found

Alle anderen Variablen kommen korrekt.

Lösche ich das \n aus dem Befehl, so kommt auch die nächste Variable im Skript nicht mehr....
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

theotherhalf

Zitat von: theotherhalf am 12 Mai 2017, 12:19:57
Ändere ich den Loglevel 5 auf ändert sich nicht viel, die Meldung im Log ist diese:

2017-05-12 12:17:10 ECMD EBUS FAILED
2017-05-12 12:17:13 ECMD EBUS DISCONNECTED
2017-05-12 12:17:13 ECMDDevice SP1 SP1: ERR: element not found 
2017-05-12 12:17:13 ECMDDevice SP1 SP1 ERR: element not found

Alle anderen Variablen kommen korrekt.

Lösche ich das \n aus dem Befehl, so kommt auch die nächste Variable im Skript nicht mehr....
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung