LAN-Anbindung für BSB-Bus (Brötje, Elco Thision etc.)

Begonnen von justme1968, 29 November 2014, 19:50:40

Vorheriges Thema - Nächstes Thema

freetz

So, ich habe es nun doch endlich mal geschafft eine funktionierende (und meine MAX!-Geräte erkennende) FHEM-Umgebung aufzusetzen und wollte nun auch gerne meine Thision darüber abfragen und steuern. Hier im Thread wurde dazu als Ansteuerungsmöglichkeit das Modul HTTPMOD erwähnt. Hat da jemand von Euch vielleicht schon einen fertigen Code-Schnipsel, den er hier posten könnte, damit ich das Rad nicht noch mal erfinden muss? Dafür wäre ich auf jeden Fall sehr dankbar!

Gruß,

F.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

Jewe

Zitat von: freetz am 05 November 2016, 01:01:28
So, ich habe es nun doch endlich mal geschafft eine funktionierende (und meine MAX!-Geräte erkennende) FHEM-Umgebung aufzusetzen und wollte nun auch gerne meine Thision darüber abfragen und steuern. Hier im Thread wurde dazu als Ansteuerungsmöglichkeit das Modul HTTPMOD erwähnt. Hat da jemand von Euch vielleicht schon einen fertigen Code-Schnipsel, den er hier posten könnte, damit ich das Rad nicht noch mal erfinden muss? Dafür wäre ich auf jeden Fall sehr dankbar!

Gruß,

F.
Hi,
hier  eine Abfragen, hoffe Du fängst damit was an.
Jens



define BROETJESTATUS_HK1 HTTPMOD http://192.168.6.23/700/710/712/720/721 180
attr define BROETJESTATUS_HK1.FileLog FileLog ./log/BROETJESTATUS_HK1-%m-%Y.log BROETJESTATUS_HK1:.*
attr BROETJESTATUS_HK1.FileLog room LOG
define BROETJESTATUS_HK2.FileLog FileLog ./log/BROETJESTATUS_HK2-%m-%Y.log BROETJESTATUS_HK2:.*
attr BROETJESTATUS_HK2.FileLog room LOG
define BROETJE_HK1.FileLog FileLog ./log/BROETJE_HK1-%m-%Y.log BROETJE_HK1:.*
attr BROETJE_HK1.FileLog room LOG
define BROETJE_HK2.FileLog FileLog ./log/BROETJE_HK2-%m-%Y.log BROETJE_HK2:.*
attr BROETJE_HK2.FileLog room LOG
define SVG_BROETJE_HK1.FileLog_1 SVG BROETJE_HK1.FileLog:SVG_BROETJE_HK1.FileLog_1:CURRENT
attr SVG_BROETJE_HK1.FileLog_1 room Heizung
attr SVG_BROETJE_HK1.FileLog_1 title "HK1 Fußbodenheizung"
define SVG_BROETJE_HK2.FileLog_1 SVG BROETJE_HK2.FileLog:SVG_BROETJE_HK2.FileLog_1:CURRENT
attr SVG_BROETJE_HK2.FileLog_1 room Heizung
attr SVG_BROETJE_HK2.FileLog_1 title "HK2 Heizkörper"
define SVG_BROETJE_HK1.FileLog_2 SVG BROETJE_HK1.FileLog:SVG_BROETJE_HK1.FileLog_2:CURRENT
attr SVG_BROETJE_HK1.FileLog_2 room Heizung
attr SVG_BROETJE_HK1.FileLog_2 title "Heizungspumpen" userattr disable event-min-interval event-on-change-reading reading0Name reading0Regex reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex reading5Name reading5Regex reading6Name reading6Regex reading7Name reading7Regex reading8Name reading8Regex reading9Name reading9Regex readingExpr timeout webCmd
attr BROETJESTATUS_HK1 disable 0
attr BROETJESTATUS_HK1 event-min-interval .*:1800
attr BROETJESTATUS_HK1 event-on-change-reading .*
attr BROETJESTATUS_HK1 reading0Name Betriebsart
attr BROETJESTATUS_HK1 reading0Regex Betriebsart:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK1 reading1Name Komfortsollwert
attr BROETJESTATUS_HK1 reading1Regex Komfortsollwert:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK1 reading2Name Reduziertsollwert
attr BROETJESTATUS_HK1 reading2Regex Reduziertsollwert:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK1 reading3Name Kennlinie Steilheit
attr BROETJESTATUS_HK1 reading3Regex Kennlinie Steilheit:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK1 reading4Name Kennlinie Verschiebung
attr BROETJESTATUS_HK1 reading4Regex Kennlinie Verschiebung:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK1 readingExpr $val=~s/[\r\n]//g;;$val
attr BROETJESTATUS_HK1 room Heizung
attr BROETJESTATUS_HK1 timeout 30

define BROETJE_HK1 HTTPMOD http://192.168.6.23/8000/8730/8731/8732/8740/8741/8742/8743/8744 180
attr BROETJE_HK1 userattr disable event-min-interval event-on-change-reading reading0Name reading0Regex reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex reading5Name reading5Regex reading6Name reading6Regex reading7Name reading7Regex reading8Name reading8Regex timeout webCmd
attr BROETJE_HK1 disable 0
attr BROETJE_HK1 event-min-interval 1800
attr BROETJE_HK1 reading0Name Status Heizkreis 1
attr BROETJE_HK1 reading0Regex Status Heizkreis 1:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading1Name Heizkreispumpe Q2
attr BROETJE_HK1 reading1Regex Heizkreispumpe Q2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading2Name Heizkreismischer Auf Y1
attr BROETJE_HK1 reading2Regex Heizkreismischer Auf Y1:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading3Name Heizkreismischer Zu Y2
attr BROETJE_HK1 reading3Regex Heizkreismischer Zu Y2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading4Name Raumtemperatur 1
attr BROETJE_HK1 reading4Regex Raumtemperatur 1:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading5Name Raumsollwert 1
attr BROETJE_HK1 reading5Regex Raumsollwert 1:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading6Name Raumtemperatur 1 Modell
attr BROETJE_HK1 reading6Regex Raumtemperatur 1 Modell:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading7Name Vorlauftemperatur 1
attr BROETJE_HK1 reading7Regex Vorlauftemperatur 1:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 reading8Name Vorlaufsollwert 1
attr BROETJE_HK1 reading8Regex Vorlaufsollwert 1:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK1 room Heizung
attr BROETJE_HK1 timeout 30

define BROETJE_HK2 HTTPMOD http://192.168.6.23/8001/8760/8761/8762/8770/8771/8772/8773/8774 180
attr BROETJE_HK2 userattr disable event-min-interval event-on-change-reading reading0Name reading0Regex reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex reading5Name reading5Regex reading6Name reading6Regex reading7Name reading7Regex reading8Name reading8Regex timeout
attr BROETJE_HK2 disable 0
attr BROETJE_HK2 event-min-interval 1800
attr BROETJE_HK2 reading0Name Status Heizkreis 2
attr BROETJE_HK2 reading0Regex Status Heizkreis 2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading1Name Heizkreispumpe 2
attr BROETJE_HK2 reading1Regex Heizkreispumpe 2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading2Name Heizkreismischer 2 Auf
attr BROETJE_HK2 reading2Regex Heizkreismischer 2 Auf:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading3Name Heizkreismischer 2 Zu
attr BROETJE_HK2 reading3Regex Heizkreismischer 2 Zu:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading4Name Raumtemperatur 2
attr BROETJE_HK2 reading4Regex Raumtemperatur 2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading5Name Raumsollwert 2
attr BROETJE_HK2 reading5Regex Raumsollwert 2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading6Name Raumtemperatur 2 Modell
attr BROETJE_HK2 reading6Regex Raumtemperatur 2 Modell:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading7Name Vorlauftemperatur 2
attr BROETJE_HK2 reading7Regex Vorlauftemperatur 2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 reading8Name Vorlaufsollwert 2
attr BROETJE_HK2 reading8Regex Vorlaufsollwert 2:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJE_HK2 room Heizung
attr BROETJE_HK2 timeout 30

define BROETJESTATUS_HK2 HTTPMOD http://192.168.6.23/1010/1012/1020 180
attr BROETJESTATUS_HK2 userattr disable event-min-interval event-on-change-reading reading0Name reading0Regex reading1Name reading1Regex reading2Name reading2Regex readingExpr timeout
attr BROETJESTATUS_HK2 disable 0
attr BROETJESTATUS_HK2 event-min-interval 1800
attr BROETJESTATUS_HK2 event-on-change-reading .*
attr BROETJESTATUS_HK2 reading0Name Komfortsollwert
attr BROETJESTATUS_HK2 reading0Regex Komfortsollwert:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK2 reading1Name Reduziertsollwert
attr BROETJESTATUS_HK2 reading1Regex Reduziertsollwert:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK2 reading2Name Kennlinie Steilheit
attr BROETJESTATUS_HK2 reading2Regex Kennlinie Steilheit:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJESTATUS_HK2 readingExpr $val=~s/[\r\n]//g;;$val
attr BROETJESTATUS_HK2 room Heizung
attr BROETJESTATUS_HK2 timeout 30

define BROETJETEMP HTTPMOD http://192.168.6.23/8700 10
attr BROETJETEMP userattr disable event-min-interval event-on-change-reading reading0Name reading0Regex timeout
attr BROETJETEMP disable 0
attr BROETJETEMP event-min-interval .*:1800
attr BROETJETEMP event-on-change-reading .*
attr BROETJETEMP reading0Name Aussentemperatur
attr BROETJETEMP reading0Regex Aussentemperatur:[ \t]+([-]?[\d\.]+[^<]*)
attr BROETJETEMP room Heizung
attr BROETJETEMP timeout 30



Gesendet von meinem KFFOWI mit Tapatalk


freetz

Super, genau das brauche ich, vielen Dank!
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

freetz

Eine leicht off-topic Nachfrage hätte ich noch: Kann man mit den Werten auch rechnen? Konkret möchte ich zum einen in einem Graphen Du irre Spreizung anzeigen (also Vorlauf minus Rücklauf), zum anderen soll in einem Wert der Mittelwert über 24h gespeichert werden. Bisher mache ich das direkt ihn dem Sketch auf dem Arduino, aber wenn sich das auch in FHEM machen lässt, könnte ich in Zukunft Geros Änderungen 1:1 übernehmen.

Danke schon mal im voraus,

F.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

justme1968

für die spreizung kann du dir das userReadings attributs schauen, für den mittelwert das average oder das statistics modul.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

freetz

Prima, danke, das hilft mir schon mal sehr viel weiter - damit hoffentlich back on-topic :)...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

Jewe

Zitat von: gero am 03 November 2016, 09:15:21
Du kannst mir einfach deinen Sketch oder die Änderungen schicken.
...
Aber mach dir keinen Stress, es hätte ja sein können, dass du dich damit auskennst.

Gruß,
Gero

Hallo Gero,
nun habe ich es soweit. Bei einigen Parametern Fehlt noch der richtige Typ, aber da weis ich nicht wirklich wie das richtig gemacht wird. Sind aber auch nicht so wichtige Parameter bzw. Info´s.
Am wichtigsten war es mir der Parameter 1200 Heizkreis 2 - Betriebsartumschaltung: . Damit ich auch hierumschalten kann.
Ich hänge hier nur das .ino File an.

Jens

freetz

Hallo zusammen,

inzwischen sind die Platinen, die ich für dieses Projekt hatte anfertigen lassen, alle verteilt. Falls es darüber hinaus Interesse geben sollte, würde ich dem Interesse entsprechend einen Satz PCBs herstellen lassen. Die genauen Preise richten sich nach der Anzahl, aber als grobe Orientierung würde ich bei 10 Interessenten davon ausgehen, dass die Platine inkl. der nötigen Bauteile nicht mehr als 25 Euro kosten sollte (zzgl. natürlich der Arduino und das Ethernet-Shield). Falls es bei jemandem an den mangelnden Lötkenntnissen scheitern sollte, würden wir da sicher auch eine Lösung finden.
Wer Interesse hat, möge mir bitte unter midijoy ätt phobotron punkt de eine Mail schicken. Ich würde dann bis Ende des Monats mal abwarten, was da zusammen kommt und dann sehen wir, ob das Interesse groß genug ist.

Gruß,

Frederik
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

gero

Hallo,

ich muss um Entschuldigung bitten, dass ich immer noch nicht eine neue Version mit den Parametern von Jens und den Änderungswünschen von Frederik hier veröffentlicht habe.
Die Änderungen sind eingebaut, aber ich hatte bisher keine Zeit zum Testen. Leider wird es zeitlich in den nächsten Monaten bei mir aus beruflichen Gründen auch nicht viel besser werden.

Vielleicht mag jemand von Euch den Support für den Sketch ersteinmal übernehmen. Es handelt sich ja meist um Kleinigkeiten (z.B. das Einpflegen neuer Command IDs).
Falls sich jemand meldet, kann ich ihm gerne die ungetestete letzte Version zuschicken.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

miwi

Hier und im anderen Forum, das sich mit Brötje befasst, wurde immer wieder die Forderung laut, eine allgemeine Beschreibung der Kommandos zu "erfinden".  Obwohl jemand im anderen Forum sich gegen XML ausgesprochen hat, hat mich mein Projekt sozusagen gezwungen, diesen Weg einzuschlagen.

Hier ist das Ergebnis, das ich mittels eines Programms erzeugt habe.  Darin ist die Vorarbeit von Gero und allen, die sich in sein Projekt eingebracht haben, eingeflossen (aus seinem Quellcode erzeugt das Programm die XML-Datei). Meine eigenen im Programm festgelegten  Definitionen ergaenzen die Eingabe.

Gero: Ihren Quellcode habe ich noch etwas ergänzt. Schauen Sie sich die kleinen Unterschiede einmal an.  Nach zwei (?) unwesentlichen  Korrekturen bei end-of-string characters lief die Übersetzung in XML dann fehlerfrei.

Die ZIP-Datei enthaelt Geros Code mit #define BROETJE_SOB aktiviert und die daraus erzeugte XML-Datei.

Ich denke, diese Darstellung kann evtl. als allgemeine Grundlage für die Entwicklung von Brötje-Projekten dienen.  Für alle Arbeiteiten, in denen bisher viele Stellen als "Unknown" markiert sind, gilt: Besitzer von Brötje-Geräten dürfen gerne :-)  weiße Flecken auf der Wissenslandkarte beseitigen und Ergänzungen melden..


freetz

Hallo Gero, Jens und Miwi,

wie wäre es denn, wenn man den Code bei Github einstellt, dann ließen sich solche Änderungen in Zukunft einfacher einpflegen und man wäre nicht von einer Person abhängig? Wenn Du, Gero, da nicht das Repository verwalten möchtest, kann ich das auch machen. In jedem Fall wäre es aber wohl sinnvoll, wenn Jens und miwi Ihre Änderungen einmal als Diff schicken könnten (oder zur Not die Basis-Version, von der aus die Änderungen gemacht wurden und dann einmal die geänderte Fassung). Ich würde dann einmal diese bisherigen Beiträge zusammenfassen, "meine" Funktionen etwas aufräumen und dann hätten wir eine gute Grundlage, auf der weiterentwickelt werden kann. Was meint Ihr?

Gruß,

F.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

miwi

#506
Das liegt ganz bei Gero, denn er hat das Projekt ins Leben gerufen, hat es veröffentlicht, und betreut es.

Unabhängig davon, wie seine Antwort ausfällt:

Auf jeden Fall sähe ich es als großen Vorteil an, wenn Zahl der "unbekannten" Kommandos immer kleiner würde.  Wer die Änderungen dann zu welchem Zeitpunkt in die Codetabelle einbaut, kommt erst als zweite Frage auf .

Wenn Ergänzungen hier veröffentlicht werden und dann auch in der command table im Code stehen, kann ich einfach "per Knopfdruck" eine neue XML-Datei erzeugen, in der die Kommandoparameter menschenlesbar (nun ja, für Menschen wie sie hier mitlesen) vorliegen.

Wer also beitragen kann, unbekannte command codes und/oder die paar doppelt vergebenen command codes zu identifizieren, ist noch einmal ganz besonders eingeladen, dies zu tun.

Ein diff erzeugen kann ich natürlich.

freetz

Der Vorschlag, das in andere Hände zu legen, kam ja von Gero selber (vier Beiträge weiter oben), sowohl was das Verwalten, als auch das Einpflegen der Command IDs angeht.
Konkret liegen Änderungen(bzw. Vorschläge) von Jens und mir vor und von Dir anscheinend auch. Diese sollten also als erstes einmal in eine nächste Version einfließen. Ich habe dazu Vorschläge gemacht und meine Hilfe angeboten, bin aber (trotz oder wegen Elternzeit) sicher nicht beleidigt, wenn das jemand anderes lieber machen möchte.

Eine XML-Datei mit einer strukturierten Sammlung aller Kommandos ist sicherlich für die generelle Arbeit mit dem BSB-Bus hilfreich, aber mir ist noch nicht ganz klar geworden, wie das für dieses konkrete Projekt helfen kann (was Deine Arbeit diesbezüglich in keiner Weise missachten soll).

Gruß,

F.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

Jewe

Hallo,

na klar werde ich micht hier an der Weiterentwicklung beteiligen.
Die Änderungen von Frederik und mir hat Gero ja schon eingebaut. Der Test fehlt allerdings noch.

Zitat von: gero am 05 Dezember 2016, 08:05:32
ich muss um Entschuldigung bitten, dass ich immer noch nicht eine neue Version mit den Parametern von Jens und den Änderungswünschen von Frederik hier veröffentlicht habe.
Die Änderungen sind eingebaut, aber ich hatte bisher keine Zeit zum Testen. Leider wird es zeitlich in den nächsten Monaten bei mir aus beruflichen Gründen auch nicht viel besser werden.

Und wie das bei Github funktioniert und wie ein Diff erzeugt wird kann ich ja noch lernen :-)

Jens

stan23

#509
Github würde ich auch begrüßen.
Ich bin voller Hoffnung dass ich in den Weihnachtsferien mehr Zeit habe um mit Notebook im Keller zu sitzen und bei unbekannten Parametern zu helfen.
Außerdem würde ich die Ergebnisse gerne als JSON statt html zurückliefern, weil dann das Parsen in OpenHAB wesentlich leichter ist.