BUTH55 über BGW14 an FAE14SSR

Begonnen von BeOCeKa, 01 November 2021, 17:34:57

Vorheriges Thema - Nächstes Thema

BeOCeKa

Hallo Community,

ich habe hier die Kombination BUTH55 (Bus Uhren Thermo Hygrostat) an BGW14 (Bus Gateway), welche Heizkreisventile an einem FAE14SSR (Einzelraumregelung geräuschlos) steuern sollen.

Wie ich diese Dreierkombi im Bus miteinander verheiraten kann, muss ich bei Eltako noch einmal nachfragen.

In FHEM ist es mir nach anfänglichen Schwierigkeiten gelungen, alle Fenster, Leuchten und Dimmer zu schalten. Jetzt wollte ich mich an den Raumthermostaten probieren.

Im Netz finde ich viele Infos über die Funkvariante dieser Geräte (FUTH) aber quasi nichts zu den drahtgebundenen. Was ich weiß: die drahtgebundenen senden ihre Daten nur an BGW14 und nicht direkt in den Bus/Funk, wie z.B. die FUTH. Wenn die BUTHs in FAE14SSR eingelernt werden (Drehschalter oder PCT14), sendet der FAE14SSR die empfangenen Daten als Bestätigungstelegramm in den Bus/Funk, die ich mit USB300 empfange. Alternativ ginge auch FGW14-USB.

Diese Daten konnte ich soweit in FHEM abfragen. Ich sehe bei state die gleiche Temperatur wie auf dem Display und die Luftfeuchtigkeit stimmt auch überein.

Was ich aber überhaupt nicht hinbekomme, ist, dass der BUTH Soll-Änderungen so übermittelt, dass FAE14SSR diese Info an FHEM übergibt. Ich weiß leider nicht, ob die Daten schon beim FAE14SSR hängen bleiben oder FHEM diese nicht richtig deuten kann. Ich sehe in FHEM immer nur setpoint vom WebGUI. Ohne die Soll Temperatur vom Sensor selbst, kann man nicht wirklich gut arbeiten.

Ich habe verschiedene EEP, manufID und subType ausprobiert auch in Verbindung mit verschiedenen Funktionen in PCT14.

Ich habe verbose auf 6 gestellt, in der Hoffnung den Rohwert zu sehen, den FHEM vom FAE14SSR empfängt. Aber hier ist immer der selbe Wert zu sehen.

Hat vielleicht irgendwer von Euch eine Ähnliche Konstellation?

   STATE      T: 22.4 H: 46 SP: 25 SW: 0
   TCM_DestinationID FFFFFFFF
   TCM_MSGCNT 153
   TCM_PacketType 1
   TCM_RSSI   -45
   TCM_ReceivingQuality excellent
   TCM_RepeatingCounter 0
   TCM_SubTelNum 3
   TCM_TIME   2021-11-01 17:32:33
   TYPE       EnOcean
   OLDREADINGS:
   READINGS:
     2021-11-01 17:32:30   buttons         pressed
     2021-11-01 17:32:30   channelB        BI
     2021-11-01 17:32:33   humidity        46
     2021-11-01 17:32:33   setpoint        25
     2021-11-01 17:32:33   state           T: 22.4 H: 46 SP: 25 SW: 0
     2021-11-01 17:32:33   switch          0
     2021-11-01 17:32:33   temperature     22.4
   helper:
Attributes:
   IODev      TCM
   alias      HK Kanal 1
   eep        A5-10-12
   manufID    00D
   room       EnOcean
   subType    roomSensorControl.01
   teachMethod 4BS
   verbose    5


Schönen Abend
Christian
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

Farmer

Hallo Christian,

ich beginne gerade mich mit der Konfiguration von BUTH65 im FHEM zu beschäftigen. Aktuell habe ich mehrere BUTH65 über ein BWG14 in F4HK14 und FAE14LPR eingelernt, was auch funktioniert.
Aktuell habe ich das Problem, dass im FHEM nur die Werte (Ist-Temp, Feuchte und Temp-SP) der BUTH65 welche in in die F4HK14 eingelernt sind, korrekt angezeigt werden. Alle BUTH65 welche in die FAE14LPR eingelernt sind, zeigen zwar Werte für Ist-Temp und Feuchte an, aber mit falschen Werten und der Temp-SP wird 0 angezeigt.
Leider konnte ich im Forum noch keinen Hinweis auf die Lösung finden. Wie hast Du deine BUTH im FHEM konfiguriert/eingelernt?

Hier mal eine Konfig eines meiner BUTH.

defmod Raumsensor_Kueche_EG_Hygro EnOcean 00001902
attr Raumsensor_Kueche_EG_Hygro IODev BUTH65
attr Raumsensor_Kueche_EG_Hygro eep A5-10-06
attr Raumsensor_Kueche_EG_Hygro group Raumthemostat EG
attr Raumsensor_Kueche_EG_Hygro manufID 00D
attr Raumsensor_Kueche_EG_Hygro room 40_Heizung
attr Raumsensor_Kueche_EG_Hygro scaleDecimals 0
attr Raumsensor_Kueche_EG_Hygro scaleMax 40
attr Raumsensor_Kueche_EG_Hygro scaleMin 0
attr Raumsensor_Kueche_EG_Hygro showtime 1
attr Raumsensor_Kueche_EG_Hygro stateFormat T:temperature°C / H:humidity% / SP:setpointScaled°C
attr Raumsensor_Kueche_EG_Hygro subType roomSensorControl.01

setstate Raumsensor_Kueche_EG_Hygro T:18.7°C / H:45% / SP:0°C
setstate Raumsensor_Kueche_EG_Hygro 2021-11-04 19:20:00 IODev TCM120
setstate Raumsensor_Kueche_EG_Hygro 2021-11-04 23:34:50 humidity 45
setstate Raumsensor_Kueche_EG_Hygro 2021-11-04 23:34:50 setpoint 0
setstate Raumsensor_Kueche_EG_Hygro 2021-11-04 23:34:50 setpointScaled 0
setstate Raumsensor_Kueche_EG_Hygro 2021-11-04 23:34:50 state T: 18.7 H: 45 SP: 0 SW: 1
setstate Raumsensor_Kueche_EG_Hygro 2021-11-04 23:34:50 switch 1
setstate Raumsensor_Kueche_EG_Hygro 2021-11-04 23:34:50 temperature 18.7


Später soll dann mal noch die Anzeige des aktuellen Schaltzustand der F4HK14 und FAE14LPR und evtl. die Vorgabe des Temp SP über FHEM umgesetzt werden.
Dasshalb bin ich über jegliche Info zur Konfig der BUTH dankbar. Im Forum konnte ich leider noch nichts dazu finden.

Vielleicht hat auch jenmand in den Weiten des Forums dazu weitere Infos dazu?

Schon mal Vielen Dank und Gruß,
Dirk
FHEM auf RaspberryPI, Eltako FAM14, BWG14, FGW14-USB, BUTH65, FUTH65, 4FHK14, FAE14LPR

BeOCeKa

#2
Genauso sieht es bei mir aus. Die Solltemperatur steht bei mir auf 0. Ist und Feuchtigkeit variieren je nach EEP, Hersteller und subType.

In den Anleitungen von Eltako steht, dass BUTH Daten in den Bus schickt. Aber diese werden eben nicht per EnOcean weitergegeben. Da gibt es dann nur die Ergebnisse, die der Aktor weitergibt.

In PCT14 sehe ich auch die Lerntelegramme der BUTH, die alle mit 00 00 anfangen.

Die Technische Kundenbewertung von Eltako hat mir zu meiner Frage, ob ich die Signale im Bus direkt auslesen kann, wenn ich ein FGW14-USB verwende, folgendes geschrieben:

...ja der BUTH wird auf dem BUS genau das gleiche Signal ausgeben als am BGW.

Das Protokoll wird wie folgt gesendet:

Datenübermittlung: EEP A5-10-06:

Datentelegramm:

Data_byte0 = 0x0F
Data_byte1 = Isttemperatur 0xFF..0x00 entspricht 0..40°C
Data_byte2 = Solltemperatur 0x00..0xFF entspricht 0..40°C
Data_byte3 = Nachtabsenkung

Lerntelegramm: 0x40300D87

Hygrostatwerte werden als Tastertelegramme (um zum z.B. mit einem FSR14 einen Lüfter ein- und auszuschalten) gesendet.

Für die Hygrostatwerte (Tastertelegramme) ist eine Hysterese einstellbar.

EEP A5-10-12:

Datentelegramm:

Data_byte0 = 0x08
Data_byte1 = Istwert Temperatur 0x00..0xFA entspricht 0..40°C
Data_byte2 = Istwert Feuchtigkeit 0x00..0xFA entspricht 0..100%

Heizung:

Data_byte3 = Sollwert 0x00..0xFF entspricht 0..40°C

Hygrostat:

Data-byte3 = Sollwert 0x00..0xFF entspricht 0..100%

Lerntelegramm: 0x40900D80

Ich habe mir gerade zusätzlich zum USB300 ein FGW14-USB bestellt, damit ich die Daten der BUTH direkt auswerten kann, ohne Umwege durch den Aktor. Du hast so einen. Siehst du diese Anlerntelegramme?

Wenn der da ist (2-3 Wochen) und er angeschlossen ist, berichte ich.

Ich habe auch zu Beginn einen FTD14 gekauft, den ich eigentlich nicht brauche. Vielleicht kann ich dort aber auch hinterlegen, dass er Signale der BUTH funken soll.
Probiere ich zusätzlich aus.

Ich werde demnächst auch die Software node-enocean-utils ausprobieren. Ich möchte gerne die Rohdaten sehen.
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

Farmer

Hi,

die Anlerntelegramme welche über FGW14USB ausgelesen werden,  beginnen bei mir auch mir 00 00 und dann die entsprechende ID, entsprechend der Konfig aus dem BGW14. Was auffällig ist, dass die BUTH welche in die F4HK14 eingelernt sind funktioieren und bei den FAE14LPR leider nicht. Das Protokoll, mit welchem die BUTH in die F4HK14 bzw FAE14LPR eingelernt sind unterscheiden sich aber auch.

Auch Änderungen von EEP, supType ... hat bei mir noch nicht zum Erfolg geführt.



FHEM auf RaspberryPI, Eltako FAM14, BWG14, FGW14-USB, BUTH65, FUTH65, 4FHK14, FAE14LPR

BeOCeKa

ehm... wie hast Du Dein(e) BGW14 in PCT bekommen?
Ich kann da machen was ich will. Irgendwo in der Anleitung stand auch, dass man diesen keine Gerate Adresse vergeben könnte...
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

Farmer

Wenn ich mich recht erinnere, so wie in den der Anleitung. Hat erst auch nicht gleich funktioniert, aber jetzt ist das Modul drin. Es gab aber irgendwie ein Problem beim Ändern der Moduladresse. Da musste ich bei der vorgeschlagen Adresse bleiben.

Einen kleinen Schritt bin ich weiter gekommen, bei der Ausgabe der Werte der BUTH.
Die BUTH sind in die FAE14LPR als FTR (A5-10-06) eingelernt, damit diese auch funktionieren. Wenn ich diese auf Heizung (A5-10-12) umstelle werdem die Werte im FHEM ersteinmal richtig angezeigt, auch der Temp-SP. Leider wird dann der FAE14LPR nicht mehr angesteuert. Im F4HK14 sind die BUTH auch als BUTH mit A5-10-12 eingelernt. Leider gibt es diese Konfig in dem FAE14LPR nicht.
FHEM auf RaspberryPI, Eltako FAM14, BWG14, FGW14-USB, BUTH65, FUTH65, 4FHK14, FAE14LPR

Farmer

 Hallo Community

hat vielleicht doch noch jemand eine Idee, mit welcher Konfg. man die korrekten Werte des BUTH65 (Eltako) ausgelesen bekommt?
Aktuelle habe ich folgenden Zustand.
1.     1. BUTH eingelernt in einen F4HK14 (PCT14) als Heizung EEP A5-10-12. Anzeige von aktueller Temp. Feuchte und Temp-SP in FHEM korrekt, Heizungsregelung funktioniert.
2       2. BUTH, eingelernt in einen FAE14LP (PCT14) als FTR EEP A5-10-06. Keine korrekte Anzeige von aktueller Temp. Feuchte und Temp-SP im FHEM. Heizungsregelung funktioniert.
Wenn ich den BUTH  auf Heizung (A5-10-12) umstelle werden die Werte im FHEM erst einmal richtig angezeigt. Leider wird dann aber der FAE14LPR nicht mehr angesteuert.


Im F4HK14 sind die BUTH als BUTH mit A5-10-12 eingelernt. Leider gibt es diese Konfig in dem FAE14LPR nicht.


Vielleicht kennt jemand eine FHEM-Konfig, welche die korrekten Werte liefert?


Gruß Dirk

FHEM auf RaspberryPI, Eltako FAM14, BWG14, FGW14-USB, BUTH65, FUTH65, 4FHK14, FAE14LPR

BeOCeKa

Ich wäre ja froh überhaupt die Solltemperatur zu sehen.
Vermutlich verhält es sich mit meinen FAE14SSR wie mit deinen FAE14LPR.
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

BeOCeKa

Ich habe mir jetzt ein FGW14-USB zugelegt und in FHEM eingebunden. Jetzt sehe ich die Telegramme der BUTH direkt ohne Umwege über die Aktoren.

Ich sehe die richtigen Werte für Ist Temperatur und Feuchtigkeit. Aber bei der Solltemperatur stimmt es nicht ganz.

setpoint zeigt den dezimalen Wert des übermittelten HEX. Stelle ich die Solltemperatur auf Maximum, was 40 Grad entspricht, steht da 255 und bei 8 Grad steht da 51. Das ist soweit korrekt.

Aber die setpointTemp steht bei 16,5 statt 8. Die Formel müsste lauten setpoint / 255 * 40.

Muss ich jetzt die .pm für EnOcean anpassen oder ein Userreading anlegen?
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

BeOCeKa

#9
In der 10_EnOcean.pm steht:

    } elsif ($st eq "roomSensorControl.01") {
      # Room Sensor and Control Unit (EEP A5-04-01, A5-10-10 ... A5-10-14)
      # [Thermokon SR04 * rH, Thanus SR *, untested]
      # $db[3] is the setpoint where 0x00 = min ... 0xFF = max
      # $db[2] is the humidity where 0x00 = 0%rH ... 0xFA = 100%rH
      # $db[1] is the temperature where 0x00 = 0�C ... 0xFA = +40�C
      # $db[0] bit D0 is the occupy button, pushbutton or slide switch
      my $temp = sprintf "%0.1f", $db[1] * 40 / 250;
      my $humi = sprintf "%d", $db[2] / 2.5;
      my $switch = $db[0] & 1;
      push @event, "3:state:T: $temp H: $humi SP: $db[2] SW: $switch";
      push @event, "3:humidity:$humi";
      push @event, "3:switch:$switch";
      push @event, "3:setpoint:$db[2]";
      push @event, "3:temperature:$temp";
      my $setpointScaled = EnOcean_ReadingScaled($hash, $db[2], 0, 255);
      if (defined $setpointScaled) {
        push @event, "3:setpointScaled:" . $setpointScaled;
      }


Explizit geht es mir um diese Zeile:

     push @event, "3:state:T: $temp H: $humi SP: $db[2] SW: $switch";

SP: soll den Wert db[2] nehmen. Der steht aber, wie in den Kommentaren beschrieben und von Eltako beschrieben, im Databyte 3 und nicht 2.
Und die Umrechnung fehlt auch.
Es müsste doch heißen...

my $settemp = sprintf "%0.1f", $db[3] * 40 / 250;
push @event, "3:state:T: $temp H: $humi SP: $settemp SW: $switch";
push @event, "3:setpoint:$settemp";


In der Doku von Eltako steht zwar bei EEP 05-10-12, dass Max FA wäre, aber mit FF als Max komme ich näher an die Werte.
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

klaus.schauer

Empfehlungen:
1. Fhem auf den aktuellen Stand bringen >> update
2. Skalierungsfunktion verwenden (siehe commandref) >> Attribute passend setzen

Attributes:
   scaleDecimals 1
   scaleMax   40
   scaleMin   0

BeOCeKa

#11
Also Update mache ich regelmäßig.

Ich habe die Commandref offen zu dieser EEP. Aber ein Beispiel finde ich nicht. Da verstehe ich den Code in der .pm eher.

Ich suche Mal im Forum.

scalemax soll demnach die Zahl sein, die bei 255 (0xFF) angezeigt wird (hier 40) und scalemin, was bei 0 (0x0) angezeigt wird (hier vlt 0 - ich weiß nur echte 8 bei angezeigten 51)?

Edit:

Ach jetzt. Setpointscaled ist jetzt der echte menschliche Wert.
Wie war das jetzt wieder, dass der Slider nicht setpointTemp sondern setpointscaled anzeigt?

Edit2:

Dann ändere ich lieber die pm anstatt sowas zu sehen: T: 21.9 H: 40 SP: 255
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

BeOCeKa

Mit dem Skalieren werde ich irgendwie noch hinbekommen. Habe inzwischen verstanden, dass die 10_EnOcean.pm sich an den EEP Vorgaben orientiert. Dort steht bei Set Point nun mal 0...255 und nicht wie bei Humidity 0...100 oder wie bei Temperatur 0...40. Somit kann das jeder Gerätehersteller nach Belieben umsetzen.



Dennoch bin ich der Meinung, dass in der 10_EnOcean.pm ein Fehler ist. Setpoint ist db[3], es wird aber mit db[2] gearbeitet.




    } elsif ($st eq "roomSensorControl.01") {
      # Room Sensor and Control Unit (EEP A5-04-01, A5-10-10 ... A5-10-14)
      # [Thermokon SR04 * rH, Thanus SR *, untested]
      # $db[3] is the setpoint where 0x00 = min ... 0xFF = max
      # $db[2] is the humidity where 0x00 = 0%rH ... 0xFA = 100%rH
      # $db[1] is the temperature where 0x00 = 0�C ... 0xFA = +40�C
      # $db[0] bit D0 is the occupy button, pushbutton or slide switch
      my $temp = sprintf "%0.1f", $db[1] * 40 / 250;
      my $humi = sprintf "%d", $db[2] / 2.5;
      my $switch = $db[0] & 1;
      push @event, "3:state:T: $temp H: $humi SP: $db[2] SW: $switch";
      push @event, "3:humidity:$humi";
      push @event, "3:switch:$switch";
      push @event, "3:setpoint:$db[2]";
      push @event, "3:temperature:$temp";
      my $setpointScaled = EnOcean_ReadingScaled($hash, $db[2], 0, 255);
      if (defined $setpointScaled) {
        push @event, "3:setpointScaled:" . $setpointScaled;
      }
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

klaus.schauer

Wie wäre es denn mit der aktuellen Version 25273 von 10_EnOcean?

    } elsif ($st eq "roomSensorControl.01") {
      # Room Sensor and Control Unit (EEP A5-04-01, A5-10-10 ... A5-10-14)
      # [Thermokon SR04 * rH, Thanus SR *, untested]
      # $db[3] is the setpoint where 0x00 = min ... 0xFF = max
      # $db[2] is the humidity where 0x00 = 0%rH ... 0xFA = 100%rH
      # $db[1] is the temperature where 0x00 = 0°C ... 0xFA = +40°C
      # $db[0] bit D0 is the occupy button, pushbutton or slide switch
      my $temp = sprintf "%0.1f", $db[1] * 40 / 250;
      my $humi = sprintf "%d", $db[2] / 2.5;
      my $switch = $db[0] & 1;
      push @event, "3:humidity:$humi";
      push @event, "3:temperature:$temp";
      if ($manufID eq "039") {
        my $brightness = sprintf "%d", $db[3] * 117;
        push @event, "3:brightness:$brightness";
        push @event, "3:state:T: $temp H: $humi B: $brightness";
      } else {
        push @event, "3:setpoint:$db[3]";
        push @event, "3:state:T: $temp H: $humi SP: $db[3] SW: $switch";
        push @event, "3:switch:$switch";
        my $setpointScaled = EnOcean_ReadingScaled($hash, $db[3], 0, 255);
        if (defined $setpointScaled) {
          push @event, "3:setpointScaled:" . $setpointScaled;
        }
      }

Ich habe nicht ohne Grund ein Update empfohlen.

BeOCeKa

Habe ich ja gemacht...  ??? ...zuletzt gestern und das letzte Mal kam eine neue 10_EnOcean am 21.11. bei mir.

2021.11.21 18:10:46 1: UPD FHEM/10_EnOcean.pm

Jetzt habe ich auf der Debian Console per apt update Entpacken von fhem (6.1.25345) über (6.1.25278) ... bekommen und jetzt stimmt auch die 10_EnOcean Version.

Ich habe mir das doch nicht ausgedacht mit dem falschen Wert...  :'(
Im FHEM Einsteiger Guide und in fast jedem Artikel steht, man soll vor einer Problem Meldung ein Update machen. Muss ich das apt update nun eben auch jedes Mal mitmachen.

Danke für die Mühe, Geduld usw.

Christian
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM