Anbindung and ebusd mit modul 98_GAEBUS.pm

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

Vorheriges Thema - Nächstes Thema

yellowpinky

Hallo Andy;

Jetzt schein alles zu funktionieren  :D
Ja, ich benutze GAEBUS schon sehr lange.
Hab jetzt meinen ebus Adapter erneuert und beschäftige mich darum wieder mit dem Thema.
Hatte in diesem Zusammenhang auch überlegt auf MQTT umzusteigen... ist mir aber zu umständlich. Ich finde GAEBUS bedienerfreundlicher.

Danke
Daniel

Tomy

#466
Zitat von: freetz am 17 Mai 2019, 12:02:49
Ok, drei Intervalle abgewartet, die SetMode Readings aktualisieren sich nicht, erst dann, wenn ich get reading ... manuell aufrufe. Habe auch noch mal im Logfile nachgesehen: Dort taucht in den ganzen execute/answer Paaren der entsprechende Eintrag für SetMode nicht auf. Wenn ich ihn manuell über get reading aufrufe, kommt der beim Intervall-Abruf fehlende Eintrag:
2019.05.17 12:00:06 3: Vaillant execute r -c bai SetMode
2019.05.17 12:00:06 3: Vaillant answer r xbai-HcMode;xbai-FlowTempDesired2;xbai-HwcTempDesired;xbai-HwcFlowTempDesired;xbai-DisableHc;xbai-DisableHwcTapping;xbai-DisableHwcLoad;xbai-RemoteControlHcPump;xbai-ReleaseBackup;xbai-ReleaseCooling auto;90.0;-;-;0;0;1;0;0;0


Hallo jamesgo & freetz,
auch ich nutze die "u" broadcasts in meinem ebus. Auch bei mir aktualisierten die "broadcast" readings nur bei manuellem "get reading". Ich hab mal in den Quellcode geschaut - in Zeile 1212 steht nur "r", da gehört "[ru]" hin dann werden auch die "u" readings aktualisiert.

Zeile 1212
# only for "ru" commands
    if ($oneattr =~ /^[ru]$delimiter[^$delimiter]{1,}$delimiter.*/)

# syncronize with ebusd

  my ($state, $actMessage) = GAEBUS_State($hash);
  if ($state ne "ok") {
    Log3 ($name, 2, "$name: ebusd no connection or signal state($state)");
    return "$name";
  }
  Log3 ($name, 5, "$name: ebusd state($actMessage)");
  $actMessage =~ s/,.*//;
  $readingsToUpdate .= "|state_ebus|".$actMessage;

  foreach my $oneattr (keys %{$attr{$name}})
  {
    # only for "ru" commands
ZEILE 1212    if ($oneattr =~ /^[ru]$delimiter[^$delimiter]{1,}$delimiter.*/)
    {

      my ($readingnameX, $cmdaddon) = split (" ", $attr{$name}{$oneattr}, 2);
      $cmdaddon = "" unless (defined ($cmdaddon));


@jamesgo kannst du das einfügen?

Ich kenne mich mit dem "richtigen" patch erstellen zum direkten einfügen leider nicht aus :-(

Danke & Grüße

Tomy

jamesgo

Hallo Tomy,

danke für den Fix. Ich werde das einchecken. Es ist durchaus richtig dass du das nicht selbst machst.

Hier noch die ersten paar Zeilen aus der MAINTAINER.txt:


Files with a maintainer. If you wish to change a file, please contact the
maintainer of the file to do the change.

The third column specifies, where/how the maintainer should be contacted. If
there is no reaction from the mainainer within 3 weeks, then rudolfkoenig
(forum.fhem.de/FHEM Forum) should be contacted, in order to assign a new
maintainer.


Viele Grüße
Andy


Tomy

Hallo Andy,

danke!

Da hab ich mich wohl heute zu später/früher Stunde falsch ausgedrückt  :)  >:(  Ich wollte nicht selbst "patchen" sondern ich konnte dir "keinen fertigen Patch" - wie hier schon teilweise im Thread geschehen - zur Verfügung stellen.
Schönen Sonntag!

Grüße
Tomy

Zitat von: jamesgo am 16 Februar 2020, 10:45:56
Hallo Tomy,

danke für den Fix. Ich werde das einchecken. Es ist durchaus richtig dass du das nicht selbst machst.

Hier noch die ersten paar Zeilen aus der MAINTAINER.txt:


Files with a maintainer. If you wish to change a file, please contact the
maintainer of the file to do the change.

The third column specifies, where/how the maintainer should be contacted. If
there is no reaction from the mainainer within 3 weeks, then rudolfkoenig
(forum.fhem.de/FHEM Forum) should be contacted, in order to assign a new
maintainer.


Viele Grüße
Andy

jamesgo

Hi Tomy,
so wie du es gemacht hast ist es mir sowieso lieber als erst mit "diff" suchen zu müssen wo überall geändert wurde.

Grüße
Andy

theotherhalf

Ich nutze den GAEBUS schon recht lange, habe mich aber auch schon länger nicht mehr damit auseinander gesetzt.
Eine Variable, die ich lese wird scheinbar nicht mehr aktualisiert. Es ist die Speichertemperatur, die konstant auf 50°C steht.
2020.11.01 05:05:12 3: GAEBUS opening ebus1 device 192.168.178.26(8888)
2020.11.01 05:05:12 3: GAEBUS device opened (ebus1)
2020.11.01 05:05:12 2: called GAEBUS_Attr(set,ebus1,userattr,<r~sc~Storage1Sensor3>)
2020.11.01 05:05:12 2: called GAEBUS_Attr(set,ebus1,disable,<0>)
2020.11.01 05:05:12 2: called GAEBUS_Attr(set,ebus1,ebusWritesEnabled,<1>)
2020.11.01 05:05:12 2: called GAEBUS_Attr(set,ebus1,room,<Vaillant>)
2020.11.01 05:05:12 1: Including ./log/fhem.save
2020.11.01 05:05:12 1: Messages collected while initializing FHEM:configfile: ebus1: bad attribute name 'r~sc~Storage1Sensor3' (allowed chars: A-Za-z/\d_\.-)

Der Name im Gerät hat sich nicht verändert. Hat jemand eine Idee warum es jetzt beanstandet wird?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

theotherhalf

Hat jemand von Euch eine Idee warum diese Funktion nicht mehr läuft?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

jamesgo

Hallo,

du musst mal die aktuelle Version des Moduls installieren und FHEM neu starten.
Es gab in FHEM eine Änderung die "~" in den Namen nicht mehr erlaubt und es gab einen Fix der die Variablen umbenennt.

VG
Andreas

theotherhalf

FHEM is aktuell. Das Modul wird dann nicht auch aktualisiert?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

jamesgo

Dann sollte das Modul auch aktuell sein.
Du kannst mal schauen ob du diesen Kommentar in 98_GAEBUS.pm findest:

# 05.02.2020 : A.Goebel : change substitute tilde by slash in attribute names (delimiter)


Nach einem Neustart von FHEM sollten alle "~" Zeichen in den Attributnamen durch "_" ersetzt werden.
Wie sieht das bei dir aus?

theotherhalf

#475
Dies sind die beiden letzten Änderungen im File:
# 05.02.2020 : A.Goebel : change substitute tilde by slash in attribute names (delimiter)
# 16.02.2020 : A.Goebel : fix also request broadcast messages periodic call (fix from Tomy)



Generell connected er sich bei mir auch, aber ich bekomme keine readings mehr, die ich anwählen kann.
"state ebus" steht auf "unknown"

Der ebus läuft und ich bekomme andere Daten auch über ECMD herein.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

jamesgo

Mach mal den "get find_ebusd" dann liest er die config.
Oder ein "get ebusd_config" um zu sehen ob die Kommunikation mit dem ebusd generell funktioniert.

theotherhalf

#477
Ah, jetzt geht es....Man sollte nur etwas warten...

Eine Frage habe ich noch.
Ich lese das Datenwort aus r_mc, welches Status 0a heisst. Darin ist ein Pumpenstatus, den ich gerne herausfiltern würde.
Ich kann den Inhalt manuell lesen mit "get".
Nun habe ich es als Attribut angelegt, aber es wird kein reading angezeigt. Wie bekomme ich das zur Anzeige gebracht?

Das Log sagt
2020.12.04 15:54:18 3: ebus1 execute r  -f -c mc Status0a
2020.12.04 15:54:19 3: ebus1 answer r Mischkreis_Info 40.81;open;on;off;42
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

jamesgo

#478
Guckst du commandref:

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

also den Wert des Attributes abändern in: "temp;status1;status2;status3;temp2"

Wenn ein neues Reading erzeugt wird (oder nach dem ebusd_find) solltest du im Browser einen Refresh machen ... sonst wird es nicht angezeigt.(o

theotherhalf

FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung