Neues Buderus KM Modul mit neuen Features 79_BDKM.pm

Begonnen von arnoaugustin, 15 Februar 2016, 12:54:20

Vorheriges Thema - Nächstes Thema

arnoaugustin

Hallo Lakritzator,
wenn du
get <BDKMName> INFO
aufrufst, dann bekommst Du alles, was das Gateway liefert. Wenn der Wert nicht dabei ist, dann stellt ihn das Gateway auf dem Weg auch nicht zur Verfügung. Ich würde zum Testen zur Sicherheit erst mal alle PollIds auf
ID:1::
setzen, dann werden sie auch immer gelesen (Unter INFO sollte dann always stehen) Danach mal die Temperatur auf 29 Grad stellen und mit INFO nach dem nächsten Zyklus gucken ob die 29 auftaucht oder nicht. Wenn nicht, dann gibt das Gateway den Wert nicht weiter oder es fragt ihn von der Steuerung selbst einfach nicht ab.
Der /heatingCircuits/hc1/temperatureRoomSetpoint ist bei mir die Temperatur, die ich unten am Kessel einstelle woraus dann die Vorlauftemperatur errechnet wird. Evtl. steht die bei Dir aber auch gerade nur auf 0 weil Nachtbetrieb?
Wenn der Kessel meint nicht heizen zu müssen, weil Nachtbetrieb, evtl. Außentemperatur zu hoch, dann könnte es sein dass die auf 0 steht.
/heatingCircuits/hc1/manualRoomSetpoint kann man setzen und ist gültig, wenn operationMode auf manual steht.

Zitat
Was mir noch aufgefallen ist, wenn ich versuche die PollIds zu ändern werden manchmal wieder ältere Werte angezeigt.
Ich habe aktuell 2x RoomDesiredTemp drin, ist wegen Rumspielen hat sich bisher aber nicht wesentlich gestört...
Du hast bei Dir den Alias RoomDesiredTemp doppelt vergeben. Die Aliase müssen natürlich eindeutig vergeben werden.
Zitat
Ach ja, auch habe ich mal versucht der Wert /heatingCircuits/hc1/temperatureRoomSetpoint zu setzen, dieses ging nicht.
Ja, das Gateway nimmt intern nicht überall alles. Ein als schreibbar gekennzeichneter Wert muss nicht unbedingt schreibbar sein (Wer weiß schon wie es in der Software vom Gateway so aussieht...).
Ich habe bei mir mal
./fhem.pl   7072 "set Buderus /heatingCircuits/hc1/temperatureRoomSetpoint 25"
gemacht und das setzt den Wert.
Falls Du über den Alias RoomDesiredTemp gesetzt hast geht das natürlich nicht unbedingt, weil Du den Alias doppelt vergeben hast (Was man besser nicht tun sollte).

VG

Arno


Peter_Listig

@arnoaugustin


Hallo Arno,

Du hast mit dem BDKM ein tolles Modul zusammengezimmert.

Nachdem der WW-Boiler meiner 27 Jahre alten Buderus-Heizung den Geist aufgegeben
hat, habe ich die gesamte Anlage erneuern lassen und bin wieder bei Buderus gelandet.
Ausschlag gebend war der gegenüber anderen Fabrikaten günstigere Preis und auch
die Einbindung in fhem.

Zurzeit habe ich sowohl das Modul 73_km200.pm und auch Dein BDKM-Modul im Parallel-
betrieb am Laufen.

Vergleiche ich beide, so baut Dein Modul zwar auf dem km200 (Danke @Sailor) auf, ist
aber wesentlich flexibler.

Wenn ich den Thread richtig gelesen habe, kann man die "RC300Defaults" mit einem
Editor an die eigenen Bedürfnisse anpassen. Allerdings habe ich noch nicht entdeckt,
wie ich den Editor öffne (bitte einen Tipp).

Momentan beschränke ich mich sowieso noch auf das Auslesen und Anzeigen der
Werte, oder dann einzelner Werte.
Nächster Schritt ist die grafische Darstellung und ganz am Schluss, wenn ich weiß
was ich tue, die Änderung von Einstellungen ...

Eine Frage am Ende hätte ich noch, da ich auf meiner FB ungern einen DHCP-Server
weiter laufen lassen will (mir sind Devices suspekt, die mir irgendetwas vorschreiben !)

Ist es möglich in den Einstellungen des Gateways ein feste IP zu hinterlegen?


Viele Grüße und danke im Voraus



Peter
Raspi4 / Debian Bullseye / FB 7490 / FHEM 6.x / CUL433 / CUL868 / aculfw / FrtizFon / DECT200 / IT / Homematic / ZigBee (Raspbee) /  Rademacher / HE / km200  / DS214+

arnoaugustin

Hallo Peter,

die RC300Defaults im Modul sollte man eigentlich nicht editieren - das sind einfach nur Defaults die man verwenden kann wenn man will. Du solltest einfach in Deiner fhem.cfg unter dem Attribut PollId die Einstellungen nach deinen Bedürfnissen laut Doku vornehmen.
Ob man beim Gateway eine feste IP setzen kann weiß ich nicht. Ich hab bis jetzt nichts gesehen.....

VG
Arno

Lakritzator

@Peter_Listig
Meines Wissens geht das nicht, deswegen hat man DHCP Server -> Dort könnte man, wenn es kein Telekom gerät ist, der MAC Adresse auf einen IP festpinnen.
Spart der Hersteller "komplexe" Schnittstellen zu implementieren, und verwendet eine Standard.
(Leider habe ich ein Telekom Router, so einen Sch$!ss, und wandert die Adresse von meinen KM200 (und Drucker etc) hin und wieder mal durch die Gegend.)

@Arno:
Ich werde noch mal ein wenig mit dem /heatingCircuits/hc1/manualRoomSetpoint rumspielen, danke für das schnelle Antwort.
Könnte es sein, da er auf auto steht, dass dieses einfach nicht gemeldet wird?

arnoaugustin

#64
Zitat von: Lakritzator am 14 Juni 2016, 13:50:25
Ich werde noch mal ein wenig mit dem /heatingCircuits/hc1/manualRoomSetpoint rumspielen, danke für das schnelle Antwort.
Könnte es sein, da er auf auto steht, dass dieses einfach nicht gemeldet wird?
Auto heißt nur, dass er Zeitprogramm fährt (also Nachtabsenkung). Wenn er auf manual steht, dann gilt die eingestellte Temperatur als fest.
Bei deinem Wohnzimmerregler würde ich schon annehmen, dass das das Gleiche ist, wie wenn ich unten am Kessel die Temperatur rauf drehe.
Eine der Temperaturen sollte sich anpassen. Könnte aber schon dran liegen dass es draußen zu warm ist und die Heizung gerade nicht im Heizbetrieb ist und somit die Temperatur auf 0 bleibt. Spendier doch deinem Außenfühler mal ne Packung Eiswürfel ;-)

h3llsp4wn

Hallo zusammen,

erst mal Danke für das tolle Modul, welches ich seit einiger Zeit erfolgreich zwecks Auslesen/Optimierung nutze!

Soweit ich das richtig verstanden habe, kann ich mit dem Modul die Holiday-Werte nicht setzen - richtig?

Lt. Doku müsste es aber theoretisch möglich sein die Werte zu setzen?

/system/holidayModes/hm1/assignedTo                 Holiday1Assign           hc1,hc2,hc3,hc4,dhw1,dhw2
/system/holidayModes/hm1/delete
/system/holidayModes/hm1/dhwMode                   Holiday1WaterMode   OFF,TD_OFF
/system/holidayModes/hm1/hcMode                      Holiday1HeatMode       AUTO_SAT,FIX_TEMP,OFF,ECO
/system/holidayModes/hm1/startStop                    Holiday1

Daher die Frage, ob dies ggf. schon mal jemand "manuell" gemacht hat oder ob sich das Modul entsprechend erweitern lässt. Meine Zielvorstellung wäre, die wesentlichen Parameter und
dann auch die Urlaubseinstellung remote und per eigenem Front-End (FTUI) machen zu können.


Cheers,

h3ll

Jorge3711

Hallo,

über das BDKM Device in FHEM lässt sich das Holiday per set setzen, habe ich eben für Holiday1 tun können. Fehlt also nur eine grafisch ansprechende Möglichkeit über die Definition einer zusätzlichen readingsGroup für Urlaubsschaltungen mit entsprechender Logik dahinter, analog zu "Warmwasser" oder "Heizkreis Einstellungen".

h3llsp4wn

Hi nochmal,

habe jetzt die Basics drin - jetzt käme - für die Urlaubsthematik aber auch für die Wochenprogramme die Frage, ob hier schon jemand ein Frontend gebaut hat?
Falls nicht, werde ich mich wohl dran machen etwas für tabletUI/FTUI zu bauen.

Cheers,

h3ll

h3llsp4wn

Hi,

ich habe jetzt ein FTUI Front-End gebaut, mit welchem man die Wochenprogramme entsprechend editieren/bearbeiten kann. Nun würde ich natürlich gerne die geänderten Programme
an die km200 schicken. Ich würde gerne quasi ein kpl. Programm in der Form schreiben wollen:


set km200 /heatingCircuits/hc1/switchPrograms/Eigen1/ [{"setpoint":"day","dayOfWeek":"Mo","time":330},{"setpoint":"night","dayOfWeek":"Mo","time":1320}, ... {"setpoint":"day","dayOfWeek":"Su","time":330},{"setpoint":"night","dayOfWeek":"Su","time":1320},


Das Modul scheint aber eine solche Übergabe nicht vorzusehen - ich habe gesehen, dass für GET auch eine JSON Option vorhanden ist die liefert dann aber einfach nur HASH...irgendwas zurück.
Für SET gibt es die Option nicht.

Ich habe zwar noch Probleme damit, dass meine Anlage scheinbar auch Änderungen für einen einzelnen Tag ablehnt, aber grundsätzlich wäre die o.a. Lösung, die, die ich gerne umsetzen würde.

Cheers,

h3ll

h3llsp4wn

Ich denke ich habe einen Bug gefunden - sobald ich für die SwitchPrograms einen FHEM Reading Alias hinterlege, werden die Attribute nicht korrekt eingelesen (WRITEABLE, TYPE) und somit lassen sich die Programme dann weder über die ID noch über den Alias setzen.

Ohne Readings wird's allerdings schwer mit einem Frontend ...

Andere Frage - ist das Modul noch in Pflege? Sonst kann ich mich auch selbst durchwurschteln ...

Competition

#70
Hallo,

Erst einmal vielen Dank für das tolle Modul.  :)  Ich benutze es seit kurzem und es funktioniert prima.
Da ich eine Ölheizung habe, möchte ich mir noch zusätzlich eine Anzeige für den Tankstand hinzufügen.
Als Fhem Anfänger, habe ich aber leider noch Probleme beim rechnen mit den Werten.
Bisher habe ich dazu nur aus der Beispiel Buderus.cfg die ReadingGroups übernommen und die vom Brenner um die Laufzeit erweitert.

Also SystemWorkingTime immer pollen:
attr Buderus PollIds \
   RC300DEFAULTS \
   /heatSources/workingTime/totalSystem:1:0:SystemWorkingTime


Dann die Group um die Laufzeit erweitert:

############################# Brenner readingsGroup ###########################
define Brenner readingsGroup \
  Buderus:<%scene_stove>,<Leistung>,<Auslastung>,<Systemstatus>,<Laufzeit> \
  Buderus:<>,Power,PowerModulation,Health,SystemWorkingTime
attr Brenner group Parameter
attr Brenner nameStyle style="Color:yellow;;font-weight:bold"
attr Brenner nonames 1
attr Brenner room Heizung
attr Brenner sortby 12
attr Brenner valueFormat {$_=$READING;; if(/Modulation/) { "$VALUE%%";;} elsif (/power/i) {"%.1f kW";;}}
attr Brenner valueStyle {my $c=buderus_color($DEVICE,$READING,$VALUE);; "style=\"color:$c;;text-align:right\"" }


So weit funktioniert alles. Jetzt möchte ich die Laufzeit in Minuten benutzen um meinen Tankstand zu berechnen.
z.B. 1500  Liter Ölstand, 1000 Minuten Laufzeit, 1,61 Liter Verbrauch pro Stunde.
1500 - (1000/60*1,61)

Edit:
Nach langem suchen, habe ich gelernt, dass man mit ValueFormat rechnen kann. Die Anzeige vom Tankstand funktioniert jetzt so:
1,61 Liter pro Stunde = 0,02678 Liter pro Minute

#attr Brenner valueFormat {$_=$READING;; if(/Modulation/) { "$VALUE%%";;} elsif (/power/i) {"%.1f kW";;} }
attr Brenner valueFormat {SystemWorkingTime => '{sprintf("%.1f L",1500 - $VALUE*0.02678)}'}

Jetzt fehlen mir noch die Einheiten der anderen Werte von der ursprünglichen Formatierung.
Kann mir jemand eine verständlich geschriebene Anleitung zum Thema readingsGroup und rechnen mit valueFormat empfehlen?
Ich tue mich da im Moment echt schwer. Es gibt zwar unzählige Foren Beiträge und Wiki Beschreibungen aber so richtig den Durchblick habe ich da immer noch nicht.

RoRo

#71
Moin Moin!

Nachdem ich km200 schon länger kannte, bin ich die Tage über das BDKM Modul gestolpert (leider ist es nicht im Wiki verlinkt, sonst hätte ich es mir schon viel früher angesehen). Ich bin ziemlich angetan, weil man die Dinge doch wesentlich flexibler einstellen kann, als das beim km200 der Fall ist.
Eines der wichtigsten Features ist das Kommando "get Buderus INFO", welches mir eine Liste aller möglichen IDs zeigt, so dass ich weiß, welche Infos noch über die in RC300DEFAULTS definierten IDs hinaus zur Verfügung stehen.

Bei meiner GB192i mit RC300 und MM100 scheinen mir dabei folgende IDs noch sinnvolle Werte zu enthalten, die in RC300DEFAULTS noch fehlen und die (soweit ich das bisher erkennen kann) keine Duplikate anderer Werte darstellen:

   /heatingCircuits/hc1/roomtemperature:1::RoomTemp
   /system/sensors/temperatures/switch:1::SwitchTemp
   /heatSources/CHpumpModulation:1::CHPumpModulation
   /heatSources/burnerModulationSetpoint:1::BurnerModulationSetpoint
   /heatSources/actualDHWPower:1::DHWPower
   /heatSources/actualCHPower:1::CHPower
   /dhwCircuits/dhw1/switchPrograms/cp/1-Mo:0:0:CirculationProgram-1-Mo
   /dhwCircuits/dhw1/switchPrograms/cp/2-Tu:0:0:CirculationProgram-2-Tu
   /dhwCircuits/dhw1/switchPrograms/cp/3-We:0:0:CirculationProgram-3-We
   /dhwCircuits/dhw1/switchPrograms/cp/4-Th:0:0:CirculationProgram-4-Th
   /dhwCircuits/dhw1/switchPrograms/cp/5-Fr:0:0:CirculationProgram-5-Fr
   /dhwCircuits/dhw1/switchPrograms/cp/6-Sa:0:0:CirculationProgram-6-Sa
   /dhwCircuits/dhw1/switchPrograms/cp/7-Su:0:0:CirculationProgram-7-Su


Ich schreibe sie hier mal rein, vielleicht sind sie ja für den einen oder anderen ebenfalls interessant oder sie können sogar in die RC300DEFAULTS aufgenommen werden.

Tschoeeee
Roland

meier81

#72
Hallo zusammen,

wollte zuerst mal ein großes Lob aussprechen, tolles Modul. Habe auch am Anfang mit dem KM200 probiert war aber nicht wirklich überzeugt davon. Dann diese hier ausprobiert und: KLASSE!!!

Habe aber noch ein Problem. Dreht sich um die Meldung:
Undefined subroutine &main::buderus_color called at (eval 174) line 1

Habe schon den Code von arnoaugustin aus dem Post 57 als 99_buderus.pm gespeichert, dann kommt aber nach einem Neustart folgende Meldung:
reload: Error:Modul 99_buderus deactivated:
Unrecognized character \xC2; marked by <-- HERE after <-- HERE near column 1 at ./FHEM/99_buderus.pm line 249, <$fh> line 4.


Hat da jemand eine Lösung oder einen Tipp für mich?

Gruß

Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

Competition

Hallo,

ZitatHabe schon den Code von arnoaugustin aus dem Post 57 als 99_buderus.pm gespeichert, dann kommt aber nach einem Neustart folgende Meldung:

Ich habe die Sub "buderus_color" wie auf Seite 4 beschrieben in meine 99_myUtils.pm kopiert und es funktioniert.
Wenn ich das richtig verstanden habe, musst du das entweder auch in die 99_myUtils.pm aufnehmen oder eine weitere
pm wie deine 99_buderus.pm in der 99_myUtils.pm Verlinken.

Gruß
Timo

meier81

Hallo,

ZitatIch habe die Sub "buderus_color" wie auf Seite 4 beschrieben in meine 99_myUtils.pm kopiert und es funktioniert.

hab ich auch schon probiert, dann kommt aber die Meldung

reload: Error:Modul 99_Utils deactivated:
 Unrecognized character \xC2; marked by <-- HERE after <-- HERE near column 1 at ./FHEM/99_Utils.pm line 249, <$fh> line 4.


Will einfach nicht gehen, vielleicht liegt es ja an einer Änderung in FHEM seit dem Post vom März.

Noch irgendwer eine Idee?

Gruß
Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices