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

Schotty

@ceel: Danke, passt, das kopiere ich mir dann zusammen.. Die Daten von /Q wird freetz dann sicherlich noch freigeben, wenn er wieder fit ist.
Prinzipiell kannst du aber wie ich vorher schon bzgl /6220-6228 schrieb, solche 'zusammenhängenden' Abfragen mehrerer nachfolgender Parameter als einen Abruf starten. Entweder wie oben eine Abfolge mit Bindestrich (also URL/6220-6228 -> Ausgabe von 6220 BIS 6228), oder eben verschiedene mit einem Slash nacheinander (bspw. URL/6220/6225/8323/8326 -> Ausgabe von 6220,6225,8323,8326). Steht aber auch im Handbuch.. ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Ceel

Zitat von: Schotty am 28 Januar 2019, 20:51:31
@ceel: Danke, passt, das kopiere ich mir dann zusammen.. Die Daten von /Q wird freetz dann sicherlich noch freigeben, wenn er wieder fit ist.
Prinzipiell kannst du aber wie ich vorher schon bzgl /6220-6228 schrieb, solche 'zusammenhängenden' Abfragen mehrerer nachfolgender Parameter als einen Abruf starten. Entweder wie oben eine Abfolge mit Bindestrich (also URL/6220-6228 -> Ausgabe von 6220 BIS 6228), oder eben verschiedene mit einem Slash nacheinander (bspw. URL/6220/6225/8323/8326 -> Ausgabe von 6220,6225,8323,8326). Steht aber auch im Handbuch.. ;)

OK alles klar
Danke

postman

Moin zusammen,
ich hab mal eine Frage: Ich habe mal versuchsweise 8326 Brennermodulation mit FHEM in regelmäßigen Abständen  über ein HTTPMOD abgefragt. Dabei fällt auf, dass sobald die Therme in den Nachmodus (Reduziert) geht und im Reading nur noch "---%" steht, nicht mehr abgefragt wird und der Wert der letzten Abfrage mit z.B. 20% dargestellt wird.
Weiß zufällig jemand von euch woran das liegt?
Das BSB Modul zeigt es merkwürdigerweise richtig an, das HTTPMOD nicht.

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

Schotty

Moin Uwe,
da hatte doch kürzlich FunkOdyssey auch was zu geschrieben: https://forum.fhem.de/index.php/topic,29762.msg893872.html#msg893872 (dort war das Problem allerdings etwas anders glaube ich, habs jetzt nicht nochmal nachgelesen, nur den Beitrag rausgesucht).
Prinzipiell: Ich bin kein HTTPMOD-Experte, aber könnte es an deinem RegEx liegen? Im Handbuch hatte ich ein weiteres Beispiel eines Users aufgeführt, das das Reading im 'Klartext' darstellt, vielleicht könnte das die Lösung sein? https://1coderookie.github.io/BSB-LPB-LAN/kap11.html#1112-einbindung-mittels-httpmod-modul
Betreffender Abschnitt unter dem ersten Beispiel:

Soll die Darstellung wie bei den PullDown-Menüs im Webinterface im Klartext erfolgen, so müssen die regulären Ausdrücke entsprechend angepasst werden.
Im Folgenden ein Beispiel für die Parameter '700 - Betriebsart' und '8000 - Status Heizkreis 1'.

attr THISION reading3Name Betriebsart
attr THISION reading3Regex 700 .*-[ \t]+(.*)
attr THISION reading4Name Status Heizkreis 1
attr THISION reading4Regex 8000 .*-[ \t]+(.*)


Das Modul fragt mittels JSON ab, vermutlich ist es deshalb dort anders..
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Ceel

Hi Schotty
6220 Konfiguration - Software-Version: 2.7
6221 Konfiguration - Entwicklungs-Index: error 7 (parameter not supported)
6222 Konfiguration - Gerätebetriebsstunden: 72383 h
6223 Konfiguration - Bisher unbekannte Geräteabfrage: 000014 - unknown type
6224 Konfiguration - Geräte-Identifikation: RVS61.843/160
6225 Konfiguration - Gerätefamilie: 108
6226 Konfiguration - Gerätevariante: 160
6227 Konfiguration - Objektverzeichnis-Version: 2.3
6228 Konfiguration - Hersteller-ID (letzten vier Bytes): 006C00A0001700004D91 - unknown type


Screen: https://ibb.co/2ybwYZT

Schotty

Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

postman

Hallo Schotty,
dasssss habe ich wohl überlesen.  :o, bringt aber auch nicht wirklich die Lösung
Wenn ich 8326 .*:[ \t]+([-]?[\d\.]+[^<]*)
im readingsRegex.* eintrage, funktioniert es zumindest tagsüber, wenn der Brenner in Betrieb ist. Nur wenn der Brenner aus ist, z.B. nachts und nur --- als Rückmeldung kommen, wird auch nicht mehr abgefragt; zumindest nach FHEM, der ja Zeit und Datum der letzten Aktualisierung angibt.
Ich werd mal hier im Forum stöbern, vielleicht finde ich etwas oder jemanden, der sich da besser auskennt ;)
Ich werde das dann hier berichten.
Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

frank

abgefragt wird ja immer. deine regex sucht aber nach zahlen.
entscheidend ist das muster in der "capture group" (das normale klammernpaar)

schottys beispiel war "(.*)". damit sollte es auch funktionieren. eventuell so:

8326 .*:[ \t]+(.*)<
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

postman

Hallo frank,
Danke, da ging gerade nen Kronleuchter mit vielen LEDs auf ;D
Das wars. Jetzt wird es richtig angezeigt.

Nochmal Danke

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

FunkOdyssey

Hach, bin ich froh, dass ich nicht alleine mit diesem Problem bin.
Egal welchen regulären Ausdruck du verwendest, du wird immer neue Probleme damit haben.

8326 .*:[ \t]+([-]?[\d\.]+)
Holst du dir aus "Brennermodulation: 50 %" nur die Zahl, so passt es.
Holst du dir aus "Brennermodulation: --- %" nur die Zahl, so wird der Wert 0 übernommen. Und dies ist fachlich falsch.

8326 .*-[ \t]+(.*)
Holst du dir aus "Brennermodulation: 50 %" den String, so passt es und der Wert kann in FHEM problemlos weiterverwendet werden.
Holst du dir aus "Brennermodulation: --- %" den String, so ist es fachlich korrekt, aber in einem eigentlich numerischen Feld ist nun eine Zeichenkette enthalten. Dies bedeutet, dass die Weiterverarbeitung in FHEM (z.B. readingsGroups etc.) bei der Formatierung, bei Vergleichen usw. immer die Binderstriche berücksichtigen muss. Ansonsten hagelt es PERL-Warnings.


postman

Hallo FunkOdyssey,
Zitat von: FunkOdyssey am 29 Januar 2019, 15:19:38
Hach, bin ich froh, dass ich nicht alleine mit diesem Problem bin.
Ich nutze den Wert nur als Info (siehe Bild)
Ist eine    
readingsHistory, bei der mehrere Parameter einfach nur in einem Floorplan dargestellt werden.
Eine weitere Verarbeitung habe ich mit der Brennermodulation nicht vor.

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

FunkOdyssey

Okay, das macht bei der Brennermodulation auch nicht wirklich viel Sinn.
Aber es gibt zig andere Beispiele, wie bspw. die ganzen Sollwerte, die auch "---" enthalten können.
Formatiert man nun diese readingsGroup einheitlich mittels valueFormat, so gibt es halt die Warnungen.

Doch ich wüsste auch nicht, wie man das ändern soll. Mir bleibt nichts anderes übrig, als an allen Stellen der Weiterverarbeitung zusätzliche Abfragen einzubauen.
In einem DOIF würde mir [therme:sollwert:d] auch nicht helfen, da dann wiederum nur Müll bei rauskommt.

Am Rande: Ich speichere die Werte halt gerne ohne die Einheit oder das Prozentzeichen & Co.

frank

eine weiterverarbeitung muss man dann natürlich unterschiedlich behandeln.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

postman

Hallo FunkOdyssey,
Ich versuche immer die Daten so zu nutzen, wie sie vom BSB kommen.
Wenn z.B. beim Brennerstatus "18 - In Betrieb" ausgegeben wird,  mache  ich bei einem DOIF so: ([Brennerstatus:Status_Brenner:d] eq "18" Ich lasse dabei nur die Zahlenwerte auslesen, Buchstaben und Zeichen (der String enthält ja aucb einen -) werden schlichtweg ignoriert.
Funktioniert ganz gut.
Hier mal der Code eines DOIFs für die Sommermodus, damit die Thermostate der Heizkörper auch wissen, das Sommer ist ;D
([Status_Heizkreis_1:Status-Heizkreis-1:d] eq "118" or [Status_Heizkreis_1:Status-Heizkreis-1:d] eq "119") (attr doHzArbeit disable 1,set HZArbeit setpoint 10,attr HZArbeit summerMode on)
DOELSEIF ([Status_Heizkreis_1:Status-Heizkreis-1:d] ne "118" or [Status_Heizkreis_1:Status-Heizkreis-1:d] ne "119") (attr doHzArbeit disable 0,attr HZArbeit summerMode off)

Damit stelle ich den Thermostat in den Modus Summermode und öffne ihn 10% im Sommer; außerdem schalte ich damit ich ein DOIF für die Steuerung des Thermostats im Sommer ab, damit der Thermostat nicht ständig rumeiert. Geht die Therme in den Heizmodus, wird alles wieder rückgängig gemacht.

Vielleicht hilft es ja

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

frank

Zitat von: FunkOdyssey am 23 Januar 2019, 15:28:10
Danke, Frank. Aber es matchen hier auch die drei Striche --- . Und somit hat ein - eigentlich - numerischen Reading wieder nicht numerische Inhalte.
Ich weiß auch gar nicht, ob man das über reguläre Ausdrucke in den Griff bekommen. Es müsste eine Art Modifier die Bindestriche vor dem RegEx entfernen.
Oder man hätte nie mit den Bindestrichen in BSB Web arbeiten dürfen.
in diesem fall möchtest du dann also einen leerstring?
das müsste zb mit einem zusätzlichen attribut funktionieren:
attr readingXXOExpr $val=~"---"?"":$val
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html