Anbindung and ebusd mit modul 98_GAEBUS.pm

Begonnen von jamesgo, 14 September 2015, 10:18:17

Vorheriges Thema - Nächstes Thema

jamesgo

ich glaub ich habs:


if ($oneattr =~ /^r$delimiter.{1,7}$delimiter.*/)

"feuerung" hat mehr als 7 Zeichen!

Ersetze im Modul doch mal alle "{1,7}" durch "{1,8}" (oder in den csv files "feuerung" durch "feuer")

copystring

Nein. Find ich schwer zu erklären...

Ich habe mal ein Video gemacht. Hoffe das ist OK.

feuerung zu feuer angepasst ... jetzt gehts. :D wow. ist ja abgefahren! man :D

jamesgo

Hallo Felix,

das mit dem Video verstehe ich nicht ganz. Wenn du einen Wert auswählst musst du noch auf "set" klicken um das Attribut zu erzeugen.
Die "popup" Fehlermeldung ist lästig - es liegt vermutlich daran, dass das Web Interface seit der letzten Umstellung ein Problem mit der Tilde hat.

Ich schaue mir das morgen an wie den regular expression unabhängig von der Länge implementieren kann (so dass auch "feuerung" funktionieren wird)

Danke für die super Mithilfe beim Fehlersuchen.

Grüße
Andy


copystring

Hallo Andy,

ja, das mit dem auf "set" klicken ist schon klar. Ich wollte mit dem Video nur demonstrieren wann der Fehler auftaucht. Mehr nicht :) sorry wenn das falsch angekommen ist.

Du brauchst mir nicht danken. Für mich ist das toll und selbstverständlich an einem KOSTENLOSEN Modul zusammen zu arbeiten. Ich danke dir für das tolle Modul und für dein En­ga­ge­ment. Die meiste Arbeit hast du gemacht :)

Vielen Dank an dich!

Liebe Grüße & Gute Nacht!

Felix

jamesgo

Hallo Felix,

kannst du bitte die Version im Anhang ausprobieren. (Datei ersetzten und danach "reload 98_GAEBUS.pm" ausführen oder fhem neu starten)
Die "popup Fehlermeldung" sollte nun nicht mehr auftauchen und "feuerung" sollte nun auch funktionieren.

Grüße
Andy

Reinhart

Hallo jamesgo!

Die Fehlermeldung ist bei mir nun weg! Ansonsten hatte ich keine Probleme.
Danke dir!

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

copystring

Hallo Andy,

das Update von dir sieht gut aus. Auf die Schnelle kann ich keine Fehler mehr finden.

Liebe Grüße

Felix

freetz

Ich hätte noch einen: Ein nicht-Standardport wird zwar an allen möglichen Stellen (und auch im Log) angezeigt, aber beim eigentlichen Verbindungsaufbau wird trotzdem 8888 verwendet - das war vielleicht nervig zu finden ;)...
Bei mir in Zeile 633 muss
        PeerPort => "8888",
in
        PeerPort => "$port",
geändert werden, dann klappt's. Danke für dieses Modul!
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

jamesgo

Hallo freetz,
danke für den Hinweis. Ich habe es gefixt und eingecheckt.

Grüße
Andy

freetz

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

Kurze Rückmeldung: Das GAEBUS-Modul funktioniert bei mir wunderbar, sehr einfache Einrichtung, und toll, dass man die Readings selber auswählen kann und nicht per Default alles angezeigt wird - danke noch mal dafür!
Ein kleines Problem habe ich nur noch: Bei mir erscheint regelmäßig der Parameter "SetMode" im ebusd.log, ebusctl find listet ihn unter bai auf, allerdings erscheint er dort nicht unter den auswählbaren Parametern. Ich finde ihn allerdings auch nicht in der ausgewählten CSV der bai, sondern in der hcmode.inc. Kann es damit zu tun haben?
Und falls das dann gehen sollte: Da SetMode mehrere Werte mit Semikolon getrennt aufführt, wie kann ich diese dann in einzelne Readings packen?

Danke schon mal im Voraus und VG, 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

jamesgo

Hallo,

das include wir vom ebusd sicher korrekt behandelt. Mein Modul fürt "find -f -r -w" aus um die möglichen readings auszuwerten.

Fall mehrere Werte zurückkommen können auch mehrere Readings generiert werden. Der Passus im commandref lautet:

If ebusd returns a list of semicolon separated values then several semicolon separated readings can be defined.
"dummy" is a placeholder for a reading that will be ignored. (e.g.: temperature;dummy;pressure).

Über "valueFormat" ist es aber auch möglich mehrere Werte in ein einziges Reading zu packen.
Z.B. fasse ich die Zeitprogramme für Montag in ein Reading zusammen (ebusd gibt folgende Werte zurück: 03:00;13:00;13:00;21:30;-:-;-:-;Mo-Fr)

{ "FB_TT1_Mo" => "%s;%s;%s;%s;%s;%s;%s" }


Grüße
Andy

freetz

Danke für den Hinweis - ich hätte die commandref vielleicht einfach mal genauer lesen sollen ;)...

Das Komische ist nur, dass find -f -r -w eben genau den Parameter SetMode nicht zurück gibt; Wenn ich ebusctl find aufrufe, wird er mir aber angezeigt:
bai SetMode = auto;0.0;-;-;1;0;1;0;0;0
(Gesamte Liste hier: https://forum.fhem.de/index.php/topic,29737.msg918476.html#msg918476 )

Kannst Du Dir erklären, warum das so ist, bzw., wie ich dafür sorgen kann, dass SetMode dann auch von find -f -r -w ausgegeben wird?
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

jamesgo

Für mich sieht das so aus:


hcmode.inc:[b]uw[/b],,SetMode,Betriebsart,,,,00,,,hcmode,,,,flowtempdesired,,temp1,,,,hwctempdesired,,temp1,,,,hwcflowtempdesired,,temp0,,,,,,IGN:1,,,,disablehc,,BI0,,,,disablehwctapping,,BI1,,,,disablehwcload,,BI2,,,,,,IGN:1,,,,remoteControlHcPump,,BI0,,,,releaseBackup,,BI1,,,,releaseCooling,,BI2,,,,


Der Wert kann wg "w" gesetzt werden. Es fehlt aber der type "r", d.h. "find -r" zeigt ihn nicht aber "find -p" (passive mode) schon.
Mit "-p" erscheinen sowohl die "u" als auch die "b" Parameter (wobei mit im Moment nicht klar ist was der Unterschied ist)

Wenn ich "u" und "b" in einen Topf werfe da sie nicht mit "-f" abfragbar sind macht folgendes Verhalten Sinn:


localhost: r SetMode
auto;0.0;53.0;-;1;0;0;0;0;0

localhost: r -f SetMode
ERR: element not found


Mein Modul kann zwar das "-f" beim Abfragen des Readings durch "+f" beim Attribut überschreiben aber der type "u" wird aktuell nicht richtig behandelt.

Wenn man nicht "find -f -r -w" sondern "find -f -r -w -p" ausführt erscheint auch "SetMode".

Erklärt das dein Problem?

Bei der Implementierung waren mir die "broadcast" (bzw. "update"??) Werte nicht wichtig, da nicht klar ist wie oft diese geschickt werden und ich habe mich auf Werte konzentriert die zum Zeipunkt des Lesens aktuell sind.

Für eine Implementierung in meinem Modul müsste ich mir idealerweise das "u" bzw "b" irgendwie merken und das "-f" beim read für diese Parameter weglassen. Wenn dir das Wichtig ist (und ich das Problem richtig verstanden habe) dann kann ich das Implentieren sobald ich ein bisschen Zeit habe.

Grüße
Andy

Grüße
Andy

freetz

Hallo Andy,

vielen Dank für die ausführliche Erklärung!
Also, wenn Du das irgendwie/irgendwann umsetzen könntet, wäre das wahrscheinlich nicht nur für mich eine große Hilfe, denn über SetMode übermittelt der Raumregler die errechnete Vorlauftemperatur für die Therme.
Das wäre für zwei Dinge wichtig:
Zum einen zur Kontrolle, zu welchen Zeiten der Raumregler eine Heizanforderung schickt und wenn ja, welche Vorlauftemperatur da errechnet wird.
Zum anderen -  aber das müsste ich experimentell erst einmal herausfinden, ob/wie das dann geht - wäre es für Wohnungen, in denen keine Außentemperaturführung installiert ist (wie bei mir leider der Fall), eine Möglichkeit, die Außentemperatur anderweitig zu ermitteln (z.B. über ein FHEM-Wetter-Modul) und dann selber die Vorlauftemperatur zu berechnen und dann per SetMode an die Heizung zu schicken. Ob das am Ende gehen wird, kann ich noch nicht sagen, da ich dazu dann natürlich das Raumgerät abklemmen müsste (was ich dann aber eh' nicht mehr bräuchte). Es gibt im Haupt-Thread Leute, die sagen, dass dann ebus gar nicht funktionieren würde, aber das kann ich mir nicht so recht vorstellen.
Wenn Du von daher auch berücksichtigen könntet, dass man SetMode dann auch selber schreiben kann, wäre das großartig!

Dank' Dir auf jeden Fall für Dein Angebot, das zu implementieren und viele Grüße


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