Anbindung and ebusd mit modul 98_GAEBUS.pm

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

Vorheriges Thema - Nächstes Thema

jamesgo

Hallo yellowpinky,

die Timeouts sind sicherlich ein Problem (die open Meldungen nicht).

Was mich stört ist, dass die Abfrage aller Werte über 2 Minuten dauert. Wie viele Readings hast du definiert?
Nach dem Timeout werden die Readings (falls es schon erfolgreiche gegeben hat) nicht gespeichert.

Aber dass es nie klappt kann ich nicht verstehen.

Kannst du mal alle Attribute posten.

Danke
Andy

john30

Zitat von: jamesgo am 14 Dezember 2015, 09:04:38
Wie lange würde es dauern bis "find -f" nach dem Start von ebusd einen vollständigen output liefert?
Das ist das einzige Problem: das kann auch mal ein paar Minuten sein, wenn ein Gerät vorher nie adressiert wird und auch nichts von sich aus erzählt.
Man könnte den Scan und CSV-Load Status durch das "info" Kommando ermitteln und bspw. einmal pro Minute (oder bei einem Reconnect) einen Hash darüber machen und mit dem vorherigen vergleichen. Dann wüsste man, ob was zu tun ist. Die Ausgabe von "info" sieht z.B. so aus:

version: ebusd 2.0.0-preview.89d8167
signal: acquired
symbol rate: 22
masters: 5
messages: 839
address 03: master #3, seen
address 08: slave of 03, seen, scanned "MF=Vaillant;ID=EHP00;SW=0327;HW=7201", loaded "vaillant/08.ehp.csv"

Relevant sind für den Scan-Status nur die Zeilen, die mit "address " anfangen. Eine solche Zeile durchläuft üblicherweise folgende Zustände:
1. Zum ersten Mal gesehen:
address 08: slave of 03, seen
2. Erfolgreich gescannt:
address 08: slave of 03, seen, scanned "MF=Vaillant;ID=EHP00;SW=0327;HW=7201"
3. Erfolgreich geladen:
address 08: slave of 03, seen, scanned "MF=Vaillant;ID=EHP00;SW=0327;HW=7201", loaded "vaillant/08.ehp.csv"

Zitat von: jamesgo am 14 Dezember 2015, 09:04:38
Muss bei jedem Start vorher ein scan laufen?
ebusd scannt in diesem Modus automatisch ein Mal jedes Gerät, das sich erstmalig nach ebusd Start auf dem Bus bemerkbar macht.
author of ebusd

jamesgo

#152
Hallo John,
wenn ich das richtig verstehe müsste ich auf neue Zeilen mit "^address.*loaded.*" triggern und falls eine neue dazukommt nochmals einen "find -f" ausführen. (oder sind die Zwischenschritte sind für den find relevant?)

Ich gehe davon aus dass dann die Files nur durch einen manuellen "reload" neu geladen werden könnnen. In diesem Fall wäre es aus meiner Sicht auch akzeptabel im FHEM manuell ein Kommando auszuführen.

"find -f" und "info" liefern am Ende eine Leerzeile. Bleibt das so?

Ich habe schon mal ein bisschen getestet. Das Schöne ist, dass wenn ich das Lesen der .csv files abschalte alle Attribute und Readings erhalten bleiben. D.h. die zyklischen Abfragen müssten problemlos weiterlaufen aber es gibt keine "set/get" Kommandos (ausser: reopen, die write Befehle und die readings). Das ist schon mal eine sehr gute Basis.

Grüße
Andy



yellowpinky

@jamesgo

Hallo Andy;

Anbei nochmals ein Ausschnitt vom LogFile:
2015.12.14 21:45:57 3: ebus answer r Therme_Betriebsstunden_WW 432
2015.12.14 21:45:57 2: ebus device closed. Try to reopen
2015.12.14 21:45:57 1: GAEBUS ebus reappeared (ebus)
2015.12.14 21:45:57 3: ebus execute r  -f -c bai FlowTemp
2015.12.14 21:45:58 3: ebus answer r Therme_VorlaufTemp 31.75;ok
2015.12.14 21:45:58 2: ebus: not connected, stop GetUpdates loop
2015.12.14 21:47:57 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 9890
2015.12.14 21:47:57 3: BlockingCall for ebus was aborted
2015.12.14 21:52:57 3: GAEBUS opening ebus device 10.0.0.13(8888)
2015.12.14 21:52:57 3: GAEBUS device opened (ebus)
2015.12.14 21:52:57 3: ebus execute r  -f -c bai HwcHours
2015.12.14 21:52:57 3: ebus answer r Therme_Betriebsstunden_WW 432
2015.12.14 21:52:57 2: ebus device closed. Try to reopen
2015.12.14 21:52:57 1: GAEBUS ebus reappeared (ebus)
2015.12.14 21:52:57 3: ebus execute r  -f -c bai FlowTemp
2015.12.14 21:52:58 3: ebus answer r Therme_VorlaufTemp 31.44;ok
2015.12.14 21:52:58 2: ebus: not connected, stop GetUpdates loop
2015.12.14 21:54:57 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 13384
2015.12.14 21:54:57 3: BlockingCall for ebus was aborted
2015.12.14 21:59:57 3: GAEBUS opening ebus device 10.0.0.13(8888)
2015.12.14 21:59:57 3: GAEBUS device opened (ebus)
2015.12.14 21:59:57 3: ebus execute r  -f -c bai HwcHours
2015.12.14 21:59:57 3: ebus answer r Therme_Betriebsstunden_WW 432
2015.12.14 21:59:57 2: ebus device closed. Try to reopen
2015.12.14 21:59:57 1: GAEBUS ebus reappeared (ebus)
2015.12.14 21:59:57 3: ebus execute r  -f -c bai FlowTemp
2015.12.14 21:59:58 3: ebus answer r Therme_VorlaufTemp 31.12;ok
2015.12.14 21:59:58 2: ebus: not connected, stop GetUpdates loop
2015.12.14 22:00:00 3: CUL_HM set A_GaragentorZu on-for-timer 1
2015.12.14 22:01:57 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 16874
2015.12.14 22:01:57 3: BlockingCall for ebus was aborted


und meine Konfig:
define ebus GAEBUS 10.0.0.13:8888 300
attr ebus userattr r~bai~FlowTemp~d.40_Vorlauftemperatur r~bai~HcHours~d.80_Hz._Betriebsstunden r~bai~HwcHours~d.81_Betriebsstunden_WW r~bai~SDTRT~d.41_Rücklauftemperatur r~bai~WaterPressure~Wasserdruck
attr ebus ebusWritesEnabled 0
attr ebus group Therme
attr ebus room .Keller
attr ebus r~bai~FlowTemp~d.40_Vorlauftemperatur Therme_VorlaufTemp
attr ebus r~bai~HcHours~d.80_Hz._Betriebsstunden Therme_Betriebsstunden_Hz
attr ebus r~bai~HwcHours~d.81_Betriebsstunden_WW Therme_Betriebsstunden_WW
attr ebus r~bai~SDTRT~d.41_Rücklauftemperatur Therme_RuecklaufTemp
attr ebus r~bai~WaterPressure~Wasserdruck Therme_Wasserdruck


..seit heute sehe ich überhaupt nur mehr jeweils 2 Abfragen im Log !?

Danke
Daniel

john30

Hallo Andy,

Zitat von: jamesgo am 14 Dezember 2015, 13:19:51
wenn ich das richtig verstehe müsste ich auf neue Zeilen mit "^address.*loaded.*" triggern und falls eine neue dazukommt nochmals einen "find -f" ausführen. (oder sind die Zwischenschritte sind für den find relevant?)
Ganz genau. Die Zwischenschritte sind irrelevant.

Zitat von: jamesgo am 14 Dezember 2015, 13:19:51
Ich gehe davon aus dass dann die Files nur durch einen manuellen "reload" neu geladen werden könnnen. In diesem Fall wäre es aus meiner Sicht auch akzeptabel im FHEM manuell ein Kommando auszuführen.
Richtig, das ist die einzige Möglichkeit.

Zitat von: jamesgo am 14 Dezember 2015, 13:19:51
"find -f" und "info" liefern am Ende eine Leerzeile. Bleibt das so?
Ja, das ist bei allen Kommandos so und zeigt das Ende der Antwort an.

VG John
author of ebusd

jamesgo

Zitat von: yellowpinky am 14 Dezember 2015, 22:25:16
@jamesgo

Hallo Andy;

Anbei nochmals ein Ausschnitt vom LogFile:
2015.12.14 21:45:57 3: ebus answer r Therme_Betriebsstunden_WW 432
2015.12.14 21:45:57 2: ebus device closed. Try to reopen
2015.12.14 21:45:57 1: GAEBUS ebus reappeared (ebus)
2015.12.14 21:45:57 3: ebus execute r  -f -c bai FlowTemp
2015.12.14 21:45:58 3: ebus answer r Therme_VorlaufTemp 31.75;ok
2015.12.14 21:45:58 2: ebus: not connected, stop GetUpdates loop
2015.12.14 21:47:57 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 9890
2015.12.14 21:47:57 3: BlockingCall for ebus was aborted
2015.12.14 21:52:57 3: GAEBUS opening ebus device 10.0.0.13(8888)
2015.12.14 21:52:57 3: GAEBUS device opened (ebus)
2015.12.14 21:52:57 3: ebus execute r  -f -c bai HwcHours
2015.12.14 21:52:57 3: ebus answer r Therme_Betriebsstunden_WW 432
2015.12.14 21:52:57 2: ebus device closed. Try to reopen
2015.12.14 21:52:57 1: GAEBUS ebus reappeared (ebus)
2015.12.14 21:52:57 3: ebus execute r  -f -c bai FlowTemp
2015.12.14 21:52:58 3: ebus answer r Therme_VorlaufTemp 31.44;ok
2015.12.14 21:52:58 2: ebus: not connected, stop GetUpdates loop
2015.12.14 21:54:57 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 13384
2015.12.14 21:54:57 3: BlockingCall for ebus was aborted
2015.12.14 21:59:57 3: GAEBUS opening ebus device 10.0.0.13(8888)
2015.12.14 21:59:57 3: GAEBUS device opened (ebus)
2015.12.14 21:59:57 3: ebus execute r  -f -c bai HwcHours
2015.12.14 21:59:57 3: ebus answer r Therme_Betriebsstunden_WW 432
2015.12.14 21:59:57 2: ebus device closed. Try to reopen
2015.12.14 21:59:57 1: GAEBUS ebus reappeared (ebus)
2015.12.14 21:59:57 3: ebus execute r  -f -c bai FlowTemp
2015.12.14 21:59:58 3: ebus answer r Therme_VorlaufTemp 31.12;ok
2015.12.14 21:59:58 2: ebus: not connected, stop GetUpdates loop
2015.12.14 22:00:00 3: CUL_HM set A_GaragentorZu on-for-timer 1
2015.12.14 22:01:57 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 16874
2015.12.14 22:01:57 3: BlockingCall for ebus was aborted


und meine Konfig:
define ebus GAEBUS 10.0.0.13:8888 300
attr ebus userattr r~bai~FlowTemp~d.40_Vorlauftemperatur r~bai~HcHours~d.80_Hz._Betriebsstunden r~bai~HwcHours~d.81_Betriebsstunden_WW r~bai~SDTRT~d.41_Rücklauftemperatur r~bai~WaterPressure~Wasserdruck
attr ebus ebusWritesEnabled 0
attr ebus group Therme
attr ebus room .Keller
attr ebus r~bai~FlowTemp~d.40_Vorlauftemperatur Therme_VorlaufTemp
attr ebus r~bai~HcHours~d.80_Hz._Betriebsstunden Therme_Betriebsstunden_Hz
attr ebus r~bai~HwcHours~d.81_Betriebsstunden_WW Therme_Betriebsstunden_WW
attr ebus r~bai~SDTRT~d.41_Rücklauftemperatur Therme_RuecklaufTemp
attr ebus r~bai~WaterPressure~Wasserdruck Therme_Wasserdruck


..seit heute sehe ich überhaupt nur mehr jeweils 2 Abfragen im Log !?

Danke
Daniel
Hallo Daniel,

deinen Post hatte ich doch glatt übersehen.

Du hast tatsächlich ganz wenige Abfragen die in 2 Minuten zu schaffen sein sollten. Die Verbindung zum Ebusd bricht aber ab.

Was passiert wenn du ebusctl aufrufst und die Befehle nacheinander von Hand eingibst? Die Befehle findest du im log (r -f ...)

Grüße
Andy

yellowpinky

@jamesgo

Danke für deine Antwort.
Wenn ich die Anfrage per ebusctl eingebe bekomme ich sofort Antwort.
Wie gesagt ebusd und fhem laufen auf unterschiedlichen Rasp.

LG
Daniel

jamesgo

Zitat von: yellowpinky am 20 Dezember 2015, 00:08:48
@jamesgo

Danke für deine Antwort.
Wenn ich die Anfrage per ebusctl eingebe bekomme ich sofort Antwort.
Wie gesagt ebusd und fhem laufen auf unterschiedlichen Rasp.

LG
Daniel
Hallo Daniel,
hast du alle Abfragen hintereinander versucht? Oder nur eine?

Grüße
Amdy

yellowpinky

#158
Hallo Andy;
Habe die Abfragen nacheinander per Hand gemacht (einige Sec. zwischen den Abfagen).
Ich habe heute zum Test fhem auf einen Rasp 2 portiert -> GAEBUS macht laut Logfile nun auch alle 5 Abfagen hintereinander, jedoch kommt nach 2min trotzdem ein Fehler und die Readings werden nicht aktualisiert...
Könnte das ein Problem mit den Schreibrechten sein ?

2015.12.20 15:00:45 3: GAEBUS opening ebus device 10.0.0.13(8888)
2015.12.20 15:00:45 3: GAEBUS device opened (ebus)
2015.12.20 15:00:45 3: ebus execute r  -f -c bai HwcHours
2015.12.20 15:00:46 3: ebus answer r Therme_Betriebsstunden_WW 439
2015.12.20 15:00:46 3: ebus execute r  -f -c bai FlowTemp
2015.12.20 15:00:46 3: ebus answer r Therme_VorlaufTemp 40.31;ok
2015.12.20 15:00:46 3: ebus execute r  -f -c bai HcHours
2015.12.20 15:00:46 3: ebus answer r Therme_Betriebsstunden_Hz 2182
2015.12.20 15:00:46 3: ebus execute r  -f -c bai SDTRT
2015.12.20 15:00:47 3: ebus answer r Therme_RuecklaufTemp 36.06;64958;ok
2015.12.20 15:00:47 3: ebus execute r  -f -c bai WaterPressure
2015.12.20 15:00:47 3: ebus answer r Therme_Wasserdruck 2.055;ok
2015.12.20 15:02:45 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 5907
2015.12.20 15:02:45 3: BlockingCall for ebus was aborted
2015.12.20 15:07:45 3: GAEBUS opening ebus device 10.0.0.13(8888)
2015.12.20 15:07:45 3: GAEBUS device opened (ebus)
2015.12.20 15:07:45 3: ebus execute r  -f -c bai HwcHours
2015.12.20 15:07:46 3: ebus answer r Therme_Betriebsstunden_WW 439
2015.12.20 15:07:46 3: ebus execute r  -f -c bai FlowTemp
2015.12.20 15:07:46 3: ebus answer r Therme_VorlaufTemp 40.69;ok
2015.12.20 15:07:46 3: ebus execute r  -f -c bai HcHours
2015.12.20 15:07:46 3: ebus answer r Therme_Betriebsstunden_Hz 2182
2015.12.20 15:07:46 3: ebus execute r  -f -c bai SDTRT
2015.12.20 15:07:46 3: ebus answer r Therme_RuecklaufTemp 36.50;64951;ok
2015.12.20 15:07:46 3: ebus execute r  -f -c bai WaterPressure
2015.12.20 15:07:47 3: ebus answer r Therme_Wasserdruck 2.055;ok
2015.12.20 15:09:45 1: Timeout for GAEBUS_GetUpdatesDoit reached, terminated process 9642
2015.12.20 15:09:45 3: BlockingCall for ebus was aborted


LG
Daniel

majorshark

Hallo. Ich habe beim definieren des Moduls probleme.

define ebus1 GAEBUS 192.168.3.102:8888 900
Cannot load module GAEBUS


und


reload 98_GAEBUS.pm
Glob not terminated at ./FHEM/98_GAEBUS.pm line 26.


Das Modul habe ich schon mehrfach direkt geladen und die Rechte auf 644 fhem dailout gesetzt.

Was ist noch falsch?
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

amunra

Datei falsch heruntergeladen - schau dir den Inhalt der Datei an, dann wirst Du sehen was ich meine.
Gruß Arthur

majorshark

... stimmt, Danke. Wenn mann es richtig macht geht's auch gleich. ::)
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

zentis666

Hallo liebe Ebus-Freunde!
Ich würde gerne die Funktion meiner Vaillant Therme "Ein Tag zuhause" über GAEBUS ansteuern.
Das Reading r~470~Hc1SFMode~HC1_SFMode springt wenn ich das von Hand anschalte von 0 auf 2.
Wie bekomme ich es hin das Reading per GAEBUS zu schreiben?
set ebus1 w~470 Hc1SFMode~HC1_SFMode 2
liefert nur "invalid parameter" als Rückmeldung.
Zum System: ich nutze zur Zeit den ebus 1.2, hab in der 470.csv noch aus "r" "r;w" gemacht:
r;w,,Hc1SFMode,HC1_SFMode,,,,"5D00",,,UCH,,,"0 = _SFNothing,1 = _SFParty,2 = _SFOneDayBankHoliday,3 = _SFOneDayHoliday,4 = _SFHolidayPeriod,5 = _SFBankHolidayPeriod,6 = _SFQuickVeto,7 = _SFOneTimeVentilation,8 = _SFWhisperMode,9 = _SFLoadOnceDHW"

Danke für die super Arbeit, dieses Jahr ist es richtig vorangegangen, Guten Rutsch an Alle!

Grüsse
Sven
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

Reinhart

Hallo Zentis666!

du hast aber schon das Attribute "ebusWritesEnabled" auf 1 gesetzt?

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

zentis666

Hi Reinhart,

klar, das hab ich,

Gruß
Sven


Gesendet von iPhone mit Tapatalk
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge