eBus Schaltung in Betrieb nehmen

Begonnen von Reinhart, 23 Dezember 2015, 15:19:45

Vorheriges Thema - Nächstes Thema

Reinhart

Verwendung der neuen Konfigs 2.xx!

Ich fasse hier noch einmal zusammen.
So wie sua und John es richtig geschrieben haben, ist die Installation der CVS Files direkt am Raspi der einzig wirklich sichere Weg.

git clone https://github.com/john30/ebusd-configuration.git

Als Pfad würde ich auch /home/pi empfehlen, sonst kommen wieder sehr viele Fehler. Ich habe zwar jetzt (für diverse Tests) alles nach /etc/ebusd/ entpackt, weil hier auch noch jede Menge Symbollinks vorhanden sind. Das muss uns John noch einmal erklären für was die genau notwendig sind. Ich glaube auch wenn die Symbollinks nicht richtig angelegt werden, kommt es zu den massiven Fehlermeldungen beim checkconfig.


(http://up.picr.de/24170745bs.png)
so sieht es nun aus, im /etc/ebusd liegen bei mir nur die beiden csv (die ich nicht anrühre).



In der /etc/defaults/ebusd ist zusätzlich die Option --scanconfig einzutragen.
EBUSD_OPTS="-l /var/log/ebusd.log -d /dev/ttyUSB0 -p 8888 --httpport=80 --htmlpath=/var/www --scanconfig"


Wenn alles richtig entpackt wurde, befindet sich in /etc/ebusd dann auch noch zusätzlich mindestens das Verzeichnis "Vaillant" mit allen cvs. Hier befinden sich ebenfalls nochmals die _templates.csv und broadcast.csv. Bitte immer nur hier erweitern und nicht in /etc/ebusd, denn da liegen auch noch welche und die sollten nicht angerührt werden.

Dann erweitere ich die broadcast.csv und die _templates csv im Verzeichnis /etc/ebusd/vaillant (Dateien sind im Anhang) da hier einige Einträge für meine Zwecke fehlen (2 unknown sind noch da, die kommen später noch)

Nach der Einrichtung stoppe ich den ebusd (sudo service ebusd stop) und starte alles sicherheitshalber wieder (sudo service ebusd start). Anschließend checke ich mit

ebusd --checkconfig --scanconfig

bei mir gibt es dann bei mindestens 3 Files noch Fehlermeldungen (invalid value list) die mich aber nun weiter nicht mehr stören und lösche diese anschließend.

Wer ein Timerprogramm (von meinem Demo zum setzen der Schaltzeiten) bereits implementiert hat wird jetzt feststellen das dies nicht mehr funktioniert da die Aufrufe für die Calormatic430 nicht mehr passen. Ich habe die alle angepasst damit alles wieder wie gewohnt funktioniert.

#!/usr/bin/perl
# bai00.cfg
# Status
get status cmd {"r -m 10 Status01\n"}
get status expect ".*\n\n"
get status postproc {$_}

# Aussentemperatur
get Aussentemp cmd {"r -m 10 outsidetemp\n"}
get Aussentemp expect "\d+\.\d+\n\n"
get Aussentemp postproc { sprintf("%5.1f",$_) }

# vorlauftemperatur
get Vorlauf cmd {"r -f flowtemp temp\n"}
get Vorlauf expect "\d+\.\d+\n\n"
get Vorlauf postproc { sprintf("%5.1f",$_) }

# Ruecklauftemperatur
get Ruecklauf cmd {"r -f sdtrt temp\n"}
#get Ruecklauf cmd {"r -m 10 status01 temp1.1\n"}
get Ruecklauf expect "\d+\.\d+\n\n"
get Ruecklauf postproc { sprintf("%5.1f",$_) }

# FlowTempDesired
get FlowTempDesired cmd {"r -f Hc1ActualFlowTempDesired\n"}
get FlowTempDesired expect "\d+\.\d+\n\n"
get FlowTempDesired postproc { sprintf("%5.1f",$_) }

# Teillast
get PartialPower cmd {"r -f PartloadHcKW\n"}
get PartialPower expect "\d+\n\n"
get PartialPower postproc { sprintf("%5.0f KW",$_) }

# Anlagendruck
get Druck cmd {"r -f Waterpressure press.0\n"}
get Druck expect "\d+\.\d+\n\n"
get Druck postproc { sprintf("%5.1f",$_) }

# Pumpenleistung
get PumpeWatt cmd {"r -f PumpPower\n"}
get PumpeWatt expect "\d+\n\n"
get PumpeWatt postproc { sprintf("%5.0f",$_) }

# Fanspeed
get Fanspeed cmd {"r -f SDFanSpeed\n"}
get Fanspeed expect "\d+\n\n"
get Fanspeed postproc { sprintf("%5.0f",$_) } 

# BurnerStartsHC
get BurnerSt.HC cmd {"r HcStarts\n"}
get BurnerSt.HC expect "\d+\n\n"
get BurnerSt.HC postproc {$_}

# BurnerStartsHWC
get BurnSt.HWC cmd {"r HwcStarts\n"}
get BurnSt.HWC expect "\d+\n\n"
get BurnSt.HWC postproc {$_}

# Vent.Std.
get Vent.Std. cmd {"r FanHours\n"}
get Vent.Std. expect "\d+\n\n"
get Vent.Std. postproc {$_}

# WW.Std.
get WW.Std. cmd {"r HwcHours\n"}
get WW.Std. expect "\d+\n\n"
get WW.Std. postproc {$_}

# Betrieb.Std.
get Betrieb.Std. cmd {"r HcHours\n"}
get Betrieb.Std. expect "\d+\n\n"
get Betrieb.Std. postproc {$_}

# WarmW.Temp.
get WarmW.Temp. cmd {"r HwcSetPotmeter\n"}
get WarmW.Temp. expect "\d+\.\d+\n\n"
get WarmW.Temp. postproc { sprintf("%5.0f",$_) }

# Bus.Temp.
get Bus.Temp. cmd {"r ExtFlowTempDesiredMin\n"}
get Bus.Temp. expect "\d+\.\d+\n\n"
get Bus.Temp. postproc { sprintf("%5.0f °C",$_) }

# BurnerFaults
get Brennerfehler cmd {"r DeactivationsIFC\n"}
get Brennerfehler expect "\d+\n\n"
get Brennerfehler postproc {$_}

#BrennerStartfehler
get BrennerStartfehler cmd {"r CounterStartattempts1\n"}
get BrennerStartfehler expect "\d+\n\n"
get BrennerStartfehler postproc {$_}

# Heizkurve lesen
get HKurve cmd {"r -f Hc1HeatCurve\n"}
get HKurve expect "\d+\.\d+\n"
get HKurve postproc { sprintf("%3.1f",$_) }

# HeizkurveSchreiben
get HeizkurveSchreiben cmd {"write -c 430 Hc1HeatCurve ".Value("HeizkurveEinstellen")."\n"}
get HeizkurveSchreiben expect ".*\n\n"
get HeizkurveSchreiben postproc  { $_ }

# OutsideTempOffset
get OutsideTempOffset cmd {"write -c 430#install OutsideTempOffset ".Value("OutsideTempOffset")."\n"}
get OutsideTempOffset expect ".*\n\n"
get OutsideTempOffset postproc  { $_ }

# Warmwasser max lesen
get WWmax cmd {"r -f HwcTempMax\n"}
get WWmax expect "\d+\.\d+\n\n"
get WWmax postproc { sprintf("%3.1f",$_) }

# ebusctl write -c bai00#install HwcTempMax 60
get WarmWasserSchreiben cmd {"write -c bai#install HwcTempMax ".Value("WarmWasserEinstellen")."\n"}
get WarmWasserSchreiben expect ".*\n\n"
get WarmWasserSchreiben postproc  { $_ }

#####################
#  Timer-Programme  #
#####################
get Mo cmd {"r -f hc1Timer.Monday\n"}
get Mo expect ".*\n\n"
get Mo postproc { Vaillant_Timer($_); }

get Di cmd {"r -f hc1Timer.Tuesday\n"}
get Di expect ".*\n\n"
get Di postproc { Vaillant_Timer($_); }

get Mi cmd {"r -f hc1Timer.Wednesday\n"}
get Mi expect ".*\n\n"
get Mi postproc { Vaillant_Timer($_); }

get Do cmd {"r -f hc1Timer.Thursday\n"}
get Do expect ".*\n\n"
get Do postproc { Vaillant_Timer($_); }

get Fr cmd {"r -f hc1Timer.Friday\n"}
get Fr expect ".*\n\n"
get Fr postproc { Vaillant_Timer($_); }

get Sa cmd {"r -f hc1Timer.Saturday\n"}
get Sa expect ".*\n\n"
get Sa postproc { Vaillant_Timer($_); }

get So cmd {"r -f hc1Timer.Sunday\n"}
get So expect ".*\n\n"
get So postproc { Vaillant_Timer($_); }

get ZeitfensterSchreibenMo cmd {"write -c 430 hc1Timer.Monday ".ReadingsVal("TimeMo","HHMM1",0) . chr(59) . ReadingsVal("TimeMo","HHMM2",0) . chr(59) . ReadingsVal("TimeMo","HHMM3",0) . chr(59) . ReadingsVal("TimeMo","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenMo expect ".*\n\n"
get ZeitfensterSchreibenMo postproc  { $_ }

get ZeitfensterSchreibenDi cmd {"write -c 430 hc1Timer.Tuesday ".ReadingsVal("TimeDi","HHMM1",0) . chr(59) . ReadingsVal("TimeDi","HHMM2",0) . chr(59) . ReadingsVal("TimeDi","HHMM3",0) . chr(59) . ReadingsVal("TimeDi","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenDi expect ".*\n\n"
get ZeitfensterSchreibenDi postproc  { $_ }

get ZeitfensterSchreibenMi cmd {"write -c 430 hc1Timer.Wednesday ".ReadingsVal("TimeMi","HHMM1",0) . chr(59) . ReadingsVal("TimeMi","HHMM2",0) . chr(59) . ReadingsVal("TimeMi","HHMM3",0) . chr(59) . ReadingsVal("TimeMi","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenMi expect ".*\n\n"
get ZeitfensterSchreibenMi postproc  { $_ }

get ZeitfensterSchreibenDo cmd {"write -c 430 hc1Timer.Thursday ".ReadingsVal("TimeDo","HHMM1",0) . chr(59) . ReadingsVal("TimeDo","HHMM2",0) . chr(59) . ReadingsVal("TimeDo","HHMM3",0) . chr(59) . ReadingsVal("TimeDo","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenDo expect ".*\n\n"
get ZeitfensterSchreibenDo postproc  { $_ }

get ZeitfensterSchreibenFr cmd {"write -c 430 hc1Timer.Friday ".ReadingsVal("TimeFr","HHMM1",0) . chr(59) . ReadingsVal("TimeFr","HHMM2",0) . chr(59) . ReadingsVal("TimeFr","HHMM3",0) . chr(59) . ReadingsVal("TimeFr","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenFr expect ".*\n\n"
get ZeitfensterSchreibenFr postproc  { $_ }

get ZeitfensterSchreibenSa cmd {"write -c 430 hc1Timer.Saturday ".ReadingsVal("TimeSa","HHMM1",0) . chr(59) . ReadingsVal("TimeSa","HHMM2",0) . chr(59) . ReadingsVal("TimeSa","HHMM3",0) . chr(59) . ReadingsVal("TimeSa","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenSa expect ".*\n\n"
get ZeitfensterSchreibenSa postproc  { $_ }

get ZeitfensterSchreibenSo cmd {"write -c 430 hc1Timer.Sunday ".ReadingsVal("TimeSo","HHMM1",0) . chr(59) . ReadingsVal("TimeSo","HHMM2",0) . chr(59) . ReadingsVal("TimeSo","HHMM3",0) . chr(59) . ReadingsVal("TimeSo","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
get ZeitfensterSchreibenSo expect ".*\n\n"
get ZeitfensterSchreibenSo postproc  { $_ }

hier der geänderte Inhalt für die 2.xx bai00.cfg
Wer statt der Calormatic430 eine 470 hat, muss die entsprechenden Zeile natürlich ändern (write -c 430....) .

#########################################################
#
#                      Vaillant_Timer
# Datenstring = 03:30;19:30;20:00;20:00;20:00;20:00;Mo-Fr
#########################################################
# 99_myUtils.pm
sub Vaillant_Timer($)
{
  my @values=split(/[; ]/,$_);
  #-- suppress leading zero ?
  for(my $i=0;$i<7;$i++){
    $values[$i]=~s/^0//;
  }
  my $sval=sprintf("%s-%s",$values[0],$values[1]);
  $sval  .=sprintf(", %s-%s",$values[2],$values[3])
    if($values[2] ne $values[3]);
  $sval  .=sprintf(", %s-%s",$values[4],$values[5])
    if($values[4] ne $values[5]);
  return $sval;
}

der geänderte Inhalt für die 99_myUtils (den vorhanden Vaillant_Timer ersetzen bzw. hinzufügen). Dieser Inhalt entspricht wieder dem Original von pah, weil jetzt die Reihenfolge der Felder wieder passt. Bei der Konfig für 1.xx kam hier vorher noch eine Statusfeld, daher die Änderung.

Der restliche Code für Fhem (fhem.cfg) passt alles noch. Ich glaube das es in Zukunft nur mehr die 2.xx geben wird, daher habe ich jetzt bei meiner Installation von 1.xx auf 2.xx gewechselt. Wer meine Demos benutzt und die nicht mehr ändern möchte, kann selbstverständlich bei der Konfig von 1.xx bleiben.

Da John immer weiter entwickelt, wäre es schade wenn wir den Schritt zu 2.xx nicht durchführen würden.
Alles hier geschriebene, vor allem die Änderungen an den Files, betreffen jetzt meine Konfiguration "Vaillant Therme mit Calormatic 430", funktioniert aber mir geringfügigen Änderungen auch für die Calormatic 470.

Wer den GAEBUS bereits eingerichtet hat, kann vermutlich auch alles löschen und neu anlegen. Ein kleiner Trick kann euch jedoch helfen, wenn ihr die Files so umbenennt wie so vorher da waren, aber nur im Verzeichnis /opt/fhem/ebusd/.

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

ms_9

@Reinhard: mal wieder eine gelungene Zusammenfassung !

Das Schreiben der Heizkurve funktioniert durch einfaches Ändern der Ziffer auf "470" nicht, da in der 15.470.csv "wi" bei diesem Parameter steht.

Das Ändern in der bai00.cfg in
get HeizkurveSchreiben cmd {"write -c 470#install Hc1HeatCurve ".Value("HeizkurveEinstellen")."\n"}
funktioniert leider nicht.

Wenn ich den Eintrag in 15.470.csv für "Hc1HeatCurve" von "wi" auf "w" ändere und
get HeizkurveSchreiben cmd {"write 470 Hc1HeatCurve ".Value("HeizkurveEinstellen")."\n"}
verwende natürlich schon.

Wo liegt das Problem ?



Reinhart

ich glaube da brauchen wir John, scheint ein Fehler bei der Version 2.x zu sein oder wir wissen nicht wie man Dezimalzahlen bei "wi" setzen kann.

ich habe folgenden Versuch in der Konsole durchgeführt
pi@raspberry2 ~ $ ebusctl write -c 430#install OutsideTempOffset -1
done

pi@raspberry2 ~ $ ebusctl r -f OutsideTempOffset
-1.0

pi@raspberry2 ~ $ ebusctl write -c 430#install OutsideTempOffset -1.8
done

pi@raspberry2 ~ $ ebusctl r -f OutsideTempOffset
-2.0

ich setze ein Offset auf die Aussentemperatur von -1 Grad und lese das aus, dann setze ich auf -1.8 und lese 2.0 aus. D.h, es wird intern  aufgerundet! Genau so wird es bei der Heizkurve sein, mir fällt das bei der 430 nicht auf, weil ohne "wi" findet keine Rundung statt.

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

Reinhart

@ms_9

kannst du das bei dir testen?

pi@raspberry2 ~ $ ebusctl r -f Hc1HeatCurve
1.10

pi@raspberry2 ~ $ ebusctl write -c 430 Hc1HeatCurve 1.20
done

pi@raspberry2 ~ $ ebusctl r -f Hc1HeatCurve
1.20


natürlich auf deine Syntax angepasst.
ebusctl write -c 470#install Hc1HeatCurve 1.20

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

zentis666

Zitat von: Reinhart am 02 Januar 2016, 11:39:11
@zentis666

Aufgrund deiner Anfrage habe ich dir die Tablet UI hier angehängt.
<...>
Viel Spaß damit,
LG
Reinhart

Hallo Reinhart,
vielen Dank dafür, hab es eben erst gesehen.

Ich spiele schon seit einiger Zeit mit der TabletUI und hatte heute morgen schon mal selber angefangen
einige Werte zu visualisieren, jetzt will ich mich an die Zeitprogramme machen.
Jetzt weiss ich endlich wo Du das Pumpen-Icon her hast  :D. In den fa Icons hatte ich nichts gefunden.

Ich hatte überlegt eine Status-Seite zu machen in der man auf einen Blick die wichtigsten Parameter und einen Plot der Temperaturen sehen kann
(vielleicht noch einfache Schaltfunktionen wie "Ein Tag zuhause" und "Zirkulationspumpe für 5 Min ein")
und Setup-Seiten wo man Zeiten programmieren und Parameter wie Temperaturen und Heizkurve ändern kann.
Vor den Setup-Unterseiten hätte ich gerne noch irgendeinen Schutz (Passwort?), da bin ich noch am schauen wie man das am schlausten macht.

LG
Sven
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

Reinhart

@ms_9

diese Zeile kann so nicht funktionieren, ist das beim kopieren passiert oder auch in der bai00.cfg so?

get HeizkurveSchreiben cmd {"write -c 470#install Hc1HeatCurve ".Value("Heizkur$

das Log muss so aussehen:
2016.01.03 17:02:58 3: get HeizkurveSchreiben HeizkurveSchreiben : HeizkurveSchreiben done
2016.01.03 17:02:58 3: HeizkurveSchreiben_Click return value: HeizkurveSchreiben done


EBUS: no answer received (wrote "HeizkurveEinstellen", expected .*\n\n)
das Log sagt, das hier die Syntax falsch übergeben wird.

schau bitte nochmal in der bai00.cfg ob hier wirklich alles passt!

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

ms_9

Sorry, habe das aus dem Termial kopiert. Steht so in der bai00.cfg, habe es oben auch geändert
get HeizkurveSchreiben cmd {"write -c 470#install Hc1HeatCurve ".Value("HeizkurveEinstellen")."\n"}

Reinhart

ok, das wäre ja zu einfach gewesen.

Du musst aber trotzdem genau schauen, denn hier stimmt vom logischen Ablauf was nicht.

2016.01.03 16:50:45 3: get HeizkurveSchreiben HeizkurveSchreiben : HeizkurveSchreiben
2016.01.03 16:50:45 1: EBUS: unexpected answer "ERR: command not found\n\n" received (wrote "r -f Hc1HeatCurve\n", expected \d+\.\d+\n)


in der bai00.cfg wird der Befehl zum Schreiben abgesetzt und in der selben Sekunde "command not found\n\n". Das ist ein Zeichen, das die eine Zeile vorher (der eigentliche Schreibbefehl) nicht richtig abgeschlossen ist.
Und du sagst, das es ohne #install nur mit "w" funktioniert?

Ich werde bei meiner 430 jetzt den "wi" einbauen und das nochmals testen.

LG

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

Reinhart

ok, ich kann den Fehler jetzt nachstellen. Warum das passiert, kann ich nicht sagen, noch dazu weil es mit anderen "wi" ja funktioniert.

Das einfachste vorerst, den "wi" zu einem "w" machen, ist bei der 430 auch so.

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

ms_9

#84
ZitatDas einfachste vorerst, den "wi" zu einem "w" machen, ist bei der 430 auch so.

Genau DAS habe ich gestern schon gemacht. Da ich aber heute nochmal genauer wissen wollte was der Unterschied zwischen "w" und "wi" ist,
bin ich irgendwo auf eine Aussage von John gestossen, dass er damit Standard-, Installateur- und Service-Parameter beim Schreiben auf den ebus
unterscheiden will.

Gut das Du den Fehler nachstellen konntest, mal warten was John dazu einfällt  ;)


Was kannst Du HIERZU sagen?

Reinhart

kann ich nicht viel dazu sagen, aber Sven hat das geändert auf "wi" und es funktioniert anscheinend bei ihm.

Der technische Unterschied ist ja zwischen w und wi gar keiner, dient wirklich nur zur Unterscheidung für John im eBusd. Leider kann das #Zeichen in Pearl zu einem Problem werden. Ich hatte so was ähnliches schon beim Schreiben der Timer ( mit dem ; ), da konnte ich aber ausweichen. Hier klappt das allerdings nicht. Es scheint so, als würde das # intern die Zeile beenden/abtrennen, aber nur bei diesem Befehl.

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

Benno

Hallo zusammen,

ich habe nochmal ein paar Verständnisfragen zum allgemeinen Betrieb. Wenn ich mit der Ebus-Platine die Daten mittels z.B. einem Raspberry PI und FHEM aus einer Heizung auslese, werden die ausgelesenen Daten dann mittels der CSV-Datei in Daten umgewandelt die man verwenden kann oder wie läuft das genau? Werden die umgewandelten Daten dann auch in eine CSV-Datei geschrieben für die weitere Verwendung?

Wäre Euch für eine kurze Erklärung dankbar.

Gruß
Benno

Reinhart

Hallo Benno!

ebusd dient dazu um die von der Platine aufbereiteten Daten des eBus in einen lesbaren Text mit dem eigentlichen Wert umzuwandeln.

10feb516030100fa

so kommen die Daten am eBus im Rohformat an. Die Umsetzungstabelle (wenn wir die jetzt so nennen) was das bedeutet steht in der CSV Datei so das du wieder einen schönen lesbaren Text mit dem Inhalt der Daten bekommst. Der eBus übeträgt ja keine ASCII Dateien, sondern codiert die Daten in verschiedenen Formaten wie Integer BCD etc. Siehe hier die verschiedenen Datenformate.


Die aufbereiteten Daten werden nur im internen Buffer vom eBusd gehalten und dann von Fhem über ECMD (oder Gaebus) über einen Befehl entweder direkt (mit Parameter -f) oder vom Buffer (-m 10) geholt. Das ist im wesentlichen alles was der User wissen sollte. Gespeichert werden die Daten erst in Fhem wenn du das veranlasst (Log/Svg Datei anlegen etc.). Am eBus selbst wird nichts gespeichert. Der eBus dient ja eigentlich nur zum Datenaustausch deiner Therme zwischen den Zusatzgeräten wie Calormatic etc. Natürlich gibt es in den internen Geräten (wie Calormatic) auch ein EEProm welches Konfigurationsdaten wie Zeitprogramme etc. speichern kann.


Beispiel:
pi@raspberry2 ~ $ ebusctl r -f outsidetemp temp
-5.38

direkte Abfrage vom eBus


pi@raspberry2 ~ $ ebusctl r -m 10 outsidetemp temp
-5.38

Abfrage der Daten aus dem Buffer, kann daher schon einige Sekunden/Minuten zurück liegen.

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

Porsti

Hallo zusammen,

habe mich hier durch das Thema gewuselt und fange jetzt an die Platine zu löten.
Dabei habe ich versucht herauszufinden welchen usb-Konverter man am besten verwenden kann.
In den beiträgen habe ich immer nur den Hinweis auf die Fotos gefunden aber dort ist leider kein Hersteller zu erkennen.

Kann mir jemand einen Tipp geben das ich nicht direkt am Anfang den falschen kaufe??

Gruß
Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

ms_9

#89
Habe das hier für das Schreiben der Heizkurve aus dem Beispiel von Reinhard:
define HeizkurveSchreiben_Click notify HeizkurveEinstellen {\
  fhem("get HeizkurveSchreiben HeizkurveSchreiben");;\
}


hier möchte ich anschliessend die Anzeige des aktualisierten Werts der Heizkurve lesen und die veränderte VorlaufSollTemp:
define HeizkurveSchreiben_Click notify Heizkurve {\
  fhem("get HeizkurveSchreiben HeizkurveSchreiben");;\
  fhem("get HKurve HKurve");;\
  fhem("get VorlaufSoll VorlaufSoll");;\
}
}


HKurve wird aktualisiert, VoraufSoll nicht (liest den letzten Wert), erst beim EBUS.Timer kommt die neue Temp :-[
Den veränderten VorlaufSoll kann ich aber im Terminal direkt nach Ändern des Wertes der Heizkurve sehen.

Was mache ich falsch ?