wunschliste modul BSB-Bus (Brötje, Elco Thision etc.)

Begonnen von justme1968, 14 Februar 2018, 14:09:54

Vorheriges Thema - Nächstes Thema

justme1968

@postman: was passiert wenn du die gleiche anfrage mit einem browser probierst?

@freeze: ich habe angefangen das setzen von werten einzubauen. dabei ist mir vorab aufgefallen:

- die abfrage von /JK=41 landet in einer endlosschleife bei der mitten in 10510 nur noch unsinn ausgegeben wird.
- für die parameter 701 und 1001 (Präsenztaste) gibt es keine possibleValues.
- das gleiche für 1601
- aktuell gibt es noch keine möglichkeit an den ausgelesenen daten zu sehen ob ein parameter überhaupt setzbar ist und/oder ob das setzen freigeschaltet ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Jewe

Hey,
inzwischen habe ich es nochmal probiert. RasPi und Arduino neu gestartet und dann neu definiert.
Leider keine Änderung.

Ist das mit dem Passwort so richitg ?
define Broetje BSB 192.168.6.23/1234/

Festgestellt habe ich auch, wenn ich im Browser http://192.168.6.23/1234/K11 aufrufe bekomme ich sofort die Daten angezeigt.
Mache ich das selbe im Browser mit http://192.168.6.23/1234/JK11 bekomme ich nicht´s ?

Siehe auch :
https://forum.fhem.de/index.php/topic,84381.msg785006.html#msg785006

Schotty

Zitat von: Jewe am 22 März 2018, 17:35:04
Mache ich das selbe im Browser mit http://192.168.6.23/1234/JK11 bekomme ich nicht´s ?
Also wenn, dann müsste es auch (...)/JK=11 heißen glaube ich..
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Jewe

Zitat von: Schotty am 22 März 2018, 17:41:54
Also wenn, dann müsste es auch (...)/JK=11 heißen glaube ich..

Danke, ja so bekomme ich dann auch sofort die Daten als JSON angezeigt. Nur in FHEM mit den BSB Modul nicht.

justme1968

bitte stell mal verbose auf 5 und schau noch mal ins log.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

postman

Hallo justme1968,
wenn ich das im Browser (firefox) eingebe erhalte ich folgendes:
SyntaxError: JSON.parse: bad control character in string literal at line 754 column 54 of the JSON data

Vorher werden aber alle Parameter als reine Textausgabe angezeigt. Das ist aber soviel, dass es sich leider nicht kopieren läßt. Am Ende steht dann der oben angegebene Satz im Browser.

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...

Jewe

#201
Zitat von: justme1968 am 22 März 2018, 17:51:35
bitte stell mal verbose auf 5 und schau noch mal ins log.

2018.03.22 19:08:53 4: Broetje: trying to poll.
2018.03.22 19:09:00 4: Broetje: trying to poll.
2018.03.22 19:09:05 4: Broetje: trying to query categories.
2018.03.22 19:09:05 5: Broetje: received <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>BSB-LAN Web</title>
<link rel="shortcut icon" type="image/x-icon" href="http://arduino.cc/en/favicon.png" />
<style>A:link  {color:blue;text-decoration: none;} A:visited {color:blue;text-decoration: none;} A:hover {color:red;text-decoration: none;background-color:yellow} A:active {color:blue;text-decoration: none;} A:focus {color:red;text-decoration: none;}
input {width: 100%; box-sizing: border-box;} select {width: 100%;}</style>
</head><body>
<script>function set(line,formnr){
if(isNaN(document.getElementById('value'+formnr).value)==false){
window.open('S'+line+'='+document.getElementById('value'+formnr).value,'_self');
}}
function setbit(line,formnr){
var x=document.getElementById('value'+formnr); var value=0;
for (var i=0; i<x.options.length; i++) {
if(x.options[i].selected){
value=value+eval(x.options[i].value);
}}
window.open('S'+line+'='+value,'_self');
}</script>
<font face='Arial'>
<center><h1><A HREF='/2201/'>BSB-LAN Web</A></h1></center>
<table width=80% align=center><tr bgcolor=#f0f0f0><td width=20% align=center><a href='/2201/K'>Heizungsfunktionen</a></td><td width=20% align=center><font color=#000000>DS18B20-Sensoren</font></td><td width=20% align=center><font color=#000000>DHT22-Sensoren</font></td><td width=20% align=center><a href='/2201/DG'>Anzeige Logdatei</a></td></tr><tr bgcolor=#f0f0f0><td width=20% align=center><a href='/2201/C'>Konfiguration</a></td><td width=20% align=center><a href='/2201/O'>URL-Befehle</a></td><td width=20% align=center><a href='http://github.com/fredlcore/bsb_lan/blob/master/HOWTO_de.md' target='new'>HowTo</a></td><td width=20% align=center><a href='http://github.com/fredlcore/bsb_lan/blob/master/FAQ_de.md' target='_new'>FAQ</a></td>
</tr></table><p></p><table align=center width=80%><tr><td>
</td></tr></table>
</body>
</html>


2018.03.22 19:09:05 4: Broetje: got categories.
2018.03.22 19:09:05 5:        $VAR1 = {};

justme1968

@postman: schau mal ob du rausfindest welche zeile mit 754 in der parameter ausgabe gemeint sein könnte.

@Jewe: dein sketch antwortet mit einer leeren kategorien liste. was bekommst du im browser bei .../JK=ALL ?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

freetz

#203
Zitat von: justme1968 am 22 März 2018, 16:58:15
- die abfrage von /JK=41 landet in einer endlosschleife bei der mitten in 10510 nur noch unsinn ausgegeben wird.
Das hat (leider) nichts mit dem JSON-Export zu tun, sondern ist ein Problem bei der Adressierung von Strings im Bereich > 64kB, die ich nicht direkt mit char Pointern ansprechen kann. Mein Getrickse basiert darauf zu wissen, welcher String die niedrigste Adresse hat, und das scheint jetzt 10510 zu sein. Davon abgesehen ist die Kategorie für BSB eh' nicht relevant, da es die PPS-Kategorie ist. Da das zwar nicht notwendigerweise die Kategorie 41 ist, aber immer die letzte sein wird, kannst Du auch einfach die ausgelesenen Kategorien um den letzten Eintrag kürzen.
Zitat
- für die parameter 701 und 1001 (Präsenztaste) gibt es keine possibleValues.
- das gleiche für 1601
Das ist auch kein Typ ENUM, sondern einer der "proprietären" ENUMs (wie z.B. bei on/off, closed/open oder yes/no), die auf 0/1 Werten basieren. Ist nicht die reine Lehre, aber nicht auf meinem Mist gewachsen, und jetzt den Code zu durchforsten, um das alles in ENMUs abzuwandeln, fehlt mir momentan die Zeit. Deswegen übermittle ich wie bei anderen numerischen Werten den Typ DT_VALS. Wenn ich (oder jemand anderes :) ) diese Parameter auf ENUMs umstellt, werden da auch wie bei den anderen Parametern, die auf diesen Datentypen beruhen, automatisch auch die possibleValues kommen.
Zitat
- aktuell gibt es noch keine möglichkeit an den ausgelesenen daten zu sehen ob ein parameter überhaupt setzbar ist und/oder ob das setzen freigeschaltet ist.
Das könnte ich wohl noch nachreichen, aber ich meine, dass zumindest der Return-Code aussagt, ob der Parameter read-only war. Auch wenn es sicherlich nice to have wäre, das schon vorher zu wissen.
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

postman

#204
Hallo justme1968,
ich glaube, ich habe mich weiter oben etwas ungenau ausgedrückt.
Also, wenn ich IP/JK=30 im browser aufrufe, erhalte ich eine Rückgabe von Daten. Dabei kann ich mit 3 Schaltflächen auf der Seite "JSON" anklicken, in der die obige Fehlermeldung steht, mit einer zweiten Schaltfläche kann ich mir die Rohdaten anzeigen lassen, die bis auf die letzten Werte mit der Ausgabe im BSB übereinstimmen und eine dritte Schaltfläche, die mir Kopfzeilen anzeigt.

Zitatschau mal ob du rausfindest welche zeile mit 754 in der parameter ausgabe gemeint sein könnte.

"5950": {
    "name": "Funktion Eingang H1",
    "possibleValues": [
      { "enumValue": "0", "desc": "Keine" },
      { "enumValue": "1", "desc": "BA-Umschaltung HK's + TWW" },
      { "enumValue": "2", "desc": "BA-Umschaltung TWW" },
      { "enumValue": "3", "desc": "BA-Umschaltung HK's" },
      { "enumValue": "4", "desc": "BA-Umschaltung HK1" },
      { "enumValue": "5", "desc": "BA-Umschaltung HK2" },
      { "enumValue": "6", "desc": "BA-Umschaltung HK3" },
      { "enumValue": "7", "desc": "Erzeugersperre" },
      { "enumValue": "8", "desc": "Fehler- / Alarmmeldung" },
      { "enumValue": "9", "desc": "Verbr'anforderung VK1" },
      { "enumValue": "10", "desc": "Verbr'anforderung VK2" },
      { "enumValue": "11", "desc": "Freigabe Schw'bad Erzeuger" },
      { "enumValue": "12", "desc": "Übertemperaturableitung" },
      { "enumValue": "13", "desc": "Freigabe Schw'bad Erzeuger Solar" },
      { "enumValue": "14", "desc": "Betriebsniveau TWW" },
      { "enumValue": "15", "desc": "Betriebsniveau HK1" },
      { "enumValue": "16", "desc": "Betriebsniveau HK2" },
      { "enumValue": "17", "desc": "Betriebsniveau HK3" },
      { "enumValue": "18", "desc": "Raumthermostat HK1" },
      { "enumValue": "19", "desc": "Raumthermostat HK2" },
      { "enumValue": "20", "desc": "Raumthermostat HK3" },
      { "enumValue": "22", "desc": "Trinkwasserthermostat" },
      { "enumValue": "23", "desc": "Zirk'pumpenthermostat" },
      { "enumValue": "24", "desc": "Impulszählung" },
      { "enumValue": "29", "desc": "Startverhinderung  Kessel-Rückflussthermostat" },
      { "enumValue": "50", "desc": "Durchflussmessung Hz" },
      { "enumValue": "51", "desc": "Verbraucheranforderung VK1 10V" },
      { "enumValue": "52", "desc": "Verbraucheranforderung VK2 10V" },
      { "enumValue": "56", "desc": "Raumtemperatur 10V" }
    ],
    "dataType": 1
  },

die Zeile 754 ist der Parameter 19 mit dieser Ausgabe:   { "enumValue": "19", "desc": "Raumthermostat HK2" },

Ich weiss aber nicht, ob ich an der richtigen Stelle gesucht habe. Die column 54 wäre die "2" von HK2. Etwas verwirrend für mich  :-[

Ich habe die gesammte Ausgabe der Rohdaten mal in eine Textdatei umgeleitet und gespeichert. Ich hänge die mal hier ran, vielleicht kannst Du da mehr mit anfangen.

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...

Jewe

Zitat von: justme1968 am 22 März 2018, 23:19:51
@Jewe: dein sketch antwortet mit einer leeren kategorien liste. was bekommst du im browser bei .../JK=ALL ?

Sieht glaube ich gut aus.

{

"0": { "name": "Uhrzeit und Datum", "min": 0, "max": 6 },

"1": { "name": "Bedieneinheit", "min": 20, "max": 70 },

"2": { "name": "Funk", "min": 120, "max": 140 },

"3": { "name": "Zeitprogramm Heizkreis 1", "min": 500, "max": 516 },

"4": { "name": "Zeitprogramm Heizkreis 2", "min": 520, "max": 536 },

"5": { "name": "Zeitprogramm 3/HKP", "min": 540, "max": 556 },

"6": { "name": "Zeitprogramm 4", "min": 560, "max": 576 },

"7": { "name": "Zeitprogramm 5", "min": 600, "max": 616 },

"8": { "name": "Ferien Heizkreis 1", "min": 632, "max": 648 },

"9": { "name": "Ferien Heizkreis 2", "min": 649, "max": 665 },

"10": { "name": "Ferien Heizkreis P", "min": 666, "max": 682 },

"11": { "name": "Heizkreis 1", "min": 700, "max": 900 },

"12": { "name": "Kühlkreis 1", "min": 901, "max": 969 },

"13": { "name": "Heizkreis 2", "min": 1000, "max": 1200 },

"14": { "name": "Heizkreis 3/P", "min": 1300, "max": 1500 },

"15": { "name": "Trinkwasser", "min": 1600, "max": 1680 },

"16": { "name": "Hx-Pumpe", "min": 2008, "max": 2051 },

"17": { "name": "Schwimmbad", "min": 2055, "max": 2080 },

"18": { "name": "Vorregler/Zubringerpumpe", "min": 2110, "max": 2150 },

"19": { "name": "Kessel", "min": 2200, "max": 2551 },

"20": { "name": "Sitherm Pro", "min": 2700, "max": 2732 },

"21": { "name": "Wärmepumpe", "min": 2785, "max": 3010 },

"22": { "name": "Energiezähler", "min": 3095, "max": 3267 },

"23": { "name": "Kaskade", "min": 3510, "max": 3590 },

"24": { "name": "Zusatzerzeuger", "min": 3700, "max": 3723 },

"25": { "name": "Solar", "min": 3810, "max": 3887 },

"26": { "name": "Feststoffkessel", "min": 4102, "max": 4141 },

"27": { "name": "Pufferspeicher", "min": 4708, "max": 4813 },

"28": { "name": "Trinkwasserspeicher", "min": 5010, "max": 5131 },

"29": { "name": "Trinkwasser Durchl'erhitzer", "min": 5400, "max": 5544 },

"30": { "name": "Konfiguration", "min": 5700, "max": 6421 },

"31": { "name": "LPB-System", "min": 6600, "max": 6650 },

"32": { "name": "Fehler", "min": 6705, "max": 6846 },

"33": { "name": "Wartung/Sonderbetrieb", "min": 7001, "max": 7254 },

"34": { "name": "Ein-/Ausgangstest", "min": 7700, "max": 7999 },

"35": { "name": "Status", "min": 8000, "max": 8099 },

"36": { "name": "Diagnose Kaskade", "min": 8100, "max": 8150 },

"37": { "name": "Diagnose Erzeuger", "min": 8300, "max": 8570 },

"38": { "name": "Diagnose Verbraucher", "min": 8700, "max": 9075 },

"39": { "name": "Feuerungsautomat", "min": 9500, "max": 9627 },

"40": { "name": "Benutzerdefiniert", "min": 10000, "max": 10000 },

"41": { "name": "PPS-Bus", "min": 10500, "max": 10515 }

}


Schotty

#206
Zitat von: postman am 23 März 2018, 00:22:28
die Zeile 754 ist der Parameter 19 mit dieser Ausgabe:   { "enumValue": "19", "desc": "Raumthermostat HK2" },

Ich weiss aber nicht, ob ich an der richtigen Stelle gesucht habe. Die column 54 wäre die "2" von HK2. Etwas verwirrend für mich  :-[
Also wenn ich mir das txt-file so ansehe, dann ist (zumindest nach der Zählung des Editors) Z.754/C.54 die Nr.29 von Parameter 5950, da taucht direkt hinter "Startverhinderung" auch ein komisches Zeichen auf, das der Grund für das Problem sein dürfte - s. screenshot im Anhang (Zeichen habe ich orange markiert).

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

freetz

...liegt nicht am Modul, da fehlte in der ENUM-Auflistung in der Zeile ein abschließendes \0 - habe das jetzt gefixt; auch JK=41 sollte hoffentlich nicht mehr in einer Endlosschleife enden, ansonsten muss ich mir das noch mal im Detail genauer anschauen, bin jetzt erst mal eine Woche auf Dienstreise, dann ist Ostern, könnte also dauern...
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

ja. das ist es.

im BSB_lan_defs.h fehlt in zeile 2549 am ende des strings ein \0. dadurch wird der nachfolgende parameter 30 mit ans ende von parameter 29 gehängt und die 30 (\x1e) als ascii zeichen interpretiert bei dem dann der json parser aussteigt.

einfach das header file korrigieren und den sketch neu kompilieren.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Schotty

Zitat von: freetz am 22 März 2018, 23:42:11
Davon abgesehen ist die Kategorie für BSB eh' nicht relevant, da es die PPS-Kategorie ist.
Das ist überhaupt ein guter Hinweis - daher mal ganz doof nachgefragt @justme1968:
Derzeit entwickelst du das Modul ja für die Anbindung via BSB, also auch mit einer (quasi festen) Geräteadresse für Adapter und Ziel-Regler.
Wie sieht es mit der Nutzung des LPB bzw. für den LPB aus?
Gerade wenn zwei oder mehr Regler im LPB-Verbund vorhanden sind (Bsp: normaler Kesselregler + SSR für Solar etc + vielleicht auch noch ein ZR) und nicht jeder Regler einen Adapter mit eigener IP und entspr. nur lokalem Zugriff auf den direkt angeschlossenen Regler hat?
In dem Fall wäre es natürlich großartig, wenn man dann für LPB-Nutzung auch noch das komfortable Klicken hinsichtlich der auswählbaren Regler hätte, also bspw. einstellbare Geräteadresse (des Adapters, wobei man das sicherlich auch auf die config.h beschränkt lassen könnte), einstellbare Zieladresse(n) für die jeweils anzusprechenden Regler, pro Zieladresse/Regler dann die entsprechende Kategorie-&Parameterabfrage und -auswahl etc.
Eben so, dass man mit dem Modul bspw Parameter a,b,c,d,e von Regler1, Parameter c,g,h,x,y von Regler2 und Parameter a,l,p,y,z von Regler3 abrufen und weiterverarbeiten könnte. (Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt - besser weiß ich es gerade nicht zu beschreiben.. ;) )
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/