FHEM Temperaturwerte zwischen FHEM und KNX austauschen

Begonnen von joc_w, 16 Oktober 2023, 22:47:11

Vorheriges Thema - Nächstes Thema

joc_w

Hallo zusammen,

ich bin ziemlicher FHEM newbie und möchte gerne FHEM Temperaturwerte meiner ELV FHT installation in KNX anzeigen und von dort Sollwerte senden.
KNX Modul läuft soweit, eine KNX Lampe kann ich von FHEM aus bedienen aber in dieser Zeile

define FHEMtoKNX notify Zi1_Hz set TempWZ value $EVENT
muss ein Fehler sein - ermittelte Temperaturen der ELV FHT Installation werden in FHEM angezeigt aber kommen beim KNX einfach nicht an.
Manuell oder per webcmd kann ich Tempereaturen in FHEM ändern und die werden dann auch an KNX weitergeleitet.
In die Notify Zeile muss wahrsceinlich noch ein weiteres Attribut hinein, aber da hört mein Anfängerwissen auf und jede Hilfe ist willkommen!

wenn es noch wichtig ist, hier meine Definition der FHT Komponenten via einem Cuno von busware:

define Zi1_Hz FHT 1a2f
setuuid Zi1_Hz 63b9f25f-f33f-ab8d-e15a-4f9dd78ee1b27a28
attr Zi1_Hz retrycount 3
attr Zi1_Hz room FHT
define FileLog_Zi1_Hz FileLog ./log/Zi1_Hz-%Y.log Zi1_Hz
setuuid FileLog_Zi1_Hz 63b9f25f-f33f-ab8d-f859-c2279fe6391f8629
attr FileLog_Zi1_Hz logtype fht:Temp/Act,text
attr FileLog_Zi1_Hz room FHT
define SVG_Zi1_Hz SVG FileLog_Zi1_Hz:fht:CURRENT
setuuid SVG_Zi1_Hz 63b9f25f-f33f-ab8d-8d3a-181155cc1823a9a0
attr SVG_Zi1_Hz label "Zi1_Hz Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_Zi1_Hz room Plots


erwin

#1
Hi, ich denke dein notify triggert viel zu oft/unspezifisch!
versuch mal:
define FHEMtoKNX notify Zi1_Hz:temperature set TempWZ $EVTPART1.. allerdings sind da etliche "geratene" Annahmen von mir dabei.
Um das etwas genauer einzugrenzen, bitte um ein
list Zi1_HZ und ein list TempWZ device.
l.g. erwin
edit: Korrektur define stmnt. Eventuell findet sich auch im FHEM-Log einiges...
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

joc_w

danke für die Antwort, Erwin!

Leider mit Deinem "best guess" noch kein Erfolg.

List TempWZ ergibt:
Internals:
   DEF        0/1/217:dpt9
   FUUID      652ed87b-f33f-ab8d-27ab-4157a62ad33254f6
   IODev      WG_KNX
   NAME       TempWZ
   NR         149
   STATE      13.00
   TYPE       KNX
   model      dpt9
   GADDETAILS:
     g1:
       CODE       001d9
       GROUP      0/1/217
       MODEL      dpt9
       NO         1
       OPTION     
       RDNAMEGET  getG1
       RDNAMEPUT  putG1
       RDNAMESET  setG1
       SETLIST   
   GADTABLE:
     001d9      g1
   READINGS:
     2023-10-17 20:54:56   IODev           WG_KNX
     2023-10-16 15:48:05   getG1           13.00
     2023-10-16 15:48:05   last-sender     1.1.101
     2023-10-16 15:48:05   setG1           13
     2023-10-16 15:48:05   state           13.00
Attributes:
   IODev      WG_KNX
   room       KNX
   webCmd     pct

List Zi1_Hz ergibt:
Internals:
   CODE       1a2f
   CUNO_Praxis_MSGCNT 4
   CUNO_Praxis_RAWMSG 810c04xx0909a0011a2f0000a600
   CUNO_Praxis_RSSI -85.5
   CUNO_Praxis_TIME 2023-10-17 21:02:39
   DEF        1a2f
   FUUID      63b9f25f-f33f-ab8d-e15a-4f9dd78ee1b27a28
   IODev      CUNO_Praxis
   LASTInputDev CUNO_Praxis
   MSGCNT     4
   NAME       Zi1_Hz
   NR         99
   STATE      23.1 C
   TYPE       FHT
   eventCount 4
   webCmd     desired-temp
   READINGS:
     2023-10-17 20:54:51   IODev           CUNO_Praxis
     2023-10-17 21:02:39   actuator        0%
     2023-01-08 11:13:34   actuator1       pair
     2023-10-17 19:47:36   battery         low
     2023-10-17 19:47:36   batteryState    low
     2023-01-07 23:46:49   day-temp        22.5
     2023-10-17 18:16:45   desired-temp    17.0
     2023-01-07 23:46:44   fri-from1       07:00
     2023-01-07 23:46:45   fri-from2       24:00
     2023-01-07 23:46:44   fri-to1         16:30
     2023-01-07 23:46:45   fri-to2         24:00
     2023-10-17 19:47:36   lowtemp         ok
     2023-10-17 20:56:44   measured-temp   23.1
     2023-01-07 23:46:48   mode            auto
     2023-01-07 23:46:38   mon-from1       05:30
     2023-01-07 23:46:39   mon-from2       24:00
     2023-01-07 23:46:39   mon-to1         18:00
     2023-01-07 23:46:39   mon-to2         24:00
     2023-01-07 23:46:49   night-temp      17.0
     2023-01-07 23:46:45   sat-from1       06:00
     2023-01-07 23:46:46   sat-from2       24:00
     2023-01-07 23:46:46   sat-to1         06:10
     2023-01-07 23:46:46   sat-to2         24:00
     2023-10-17 20:56:44   state           23.1 C
     2023-01-08 11:44:06   sun-from1       06:00
     2023-01-08 11:44:07   sun-from2       24:00
     2023-01-08 11:44:06   sun-to1         06:10
     2023-01-08 11:44:08   sun-to2         24:00
     2023-10-17 20:56:44   temperature     23.1
     2023-01-07 23:46:43   thu-from1       07:00
     2023-01-07 23:46:43   thu-from2       24:00
     2023-01-07 23:46:43   thu-to1         18:30
     2023-01-07 23:46:43   thu-to2         24:00
     2023-01-07 23:46:40   tue-from1       07:00
     2023-01-07 23:46:40   tue-from2       24:00
     2023-01-07 23:46:40   tue-to1         18:00
     2023-01-07 23:46:41   tue-to2         24:00
     2023-10-17 19:47:36   warnings        Battery low
     2023-01-07 23:46:41   wed-from1       07:00
     2023-01-07 23:46:42   wed-from2       24:00
     2023-01-07 23:46:41   wed-to1         17:00
     2023-01-07 23:46:42   wed-to2         24:00
     2023-10-17 19:47:36   window          closed
     2023-01-07 23:46:49   windowopen-temp 12.0
     2023-10-17 19:47:36   windowsensor    ok
Attributes:
   retrycount 3
   room       FHT

erwin

#3
Hi,
noch kein Erfolg, aber ein Stück in die richtige Richtung!
Dein FHT-device hat ein Reading:
Zitat2023-10-17 20:56:44  temperature    23.1
und das sollte dein notify jedenfalls ausgelöst haben. Das kannst du überprüfen
im detail-view vom notify, dort sollte es 2 readings geben:
triggeredByDev Zi1_Hz 2023-10-17 20:56:44
triggeredByEvent temperature 2023-10-17 20:56:44
Die Timestamps werden jetzt natürlich "junger" sein, da events vom FHT ja regelmäßig kommen.
Das wäre mal der Beweis, dass das notify korrekt ausgelöst!

Warum wird am KNX device nichts angezeigt?
Die Frage stellt sich, ob im KNX-device das die korrekte GA (Gruppenadresse/dpt) 0/1/217:dpt9 für die Anzeige der Temperatur ist.
Wird etwas angezeigt, wenn du im detail-view vom TempWZ
set TempWZ g1 12.3eintippst ?
Falls nein? was für ein KNX-Gerät ist das (Type/modell...).
und welche GA's sind welchen Objekten im KNX-device zugeordnet? - Das findest du nur in der ETS - und in der Beschreibung vom KNX-Gerät findest du welche Objekte die verschiedenen Aktionen auslösen (z.B. Anzeige, Sollwert-temperatur, Ist-temp,...).
Und natürlich wäre ein Blick ins FHEM-Log während des Testens sinnvoll, bei Fehlern stehen dort wichtige Infos!
l.g. erwin

EDIT: Sorry, Korrektur zum gestrigen notify:
define FHEMtoKNX notify Zi1_Hz:temperature.* set TempWZ g1 $EVTPART1
ups... deine Antwort hat sich mit meiner Korrektur überschnitten...
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

joc_w

danke nochmal, der manuelle test über die Befehlszeile set WzTemp Wert funktioniert, das hatte ich zu Beginn schon geschrieben.

Im Notify muss noch ein Fehler sein - Wo finde ich die Info, ob der Notify Befehl triggert?
Im allgemeinen Logfile finde ich dazu keinen Eintrag aber es steht dort seit der Änderung gestern haufenweise "CUNO_Praxis: Unknown code LOVF, help me!"

erwin

Hi,
deine Antwort hat sich mit meiner Korrektur des letzten posts überschnitten, nur die Korrektur nochmals versuchen....
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

joc_w

danke, habe ich jetzt eingefügt und in 12 Minuten weiß ich, ob es funktioniert, da der temp Wert alle 12 Minuten gesendet wird.
Ich gebe Bescheid.

der CUNO_Praxis: Unknown code LOVF, help me! Logeintrag kam allerdings alle 9 Minuten, da hat der FHT wohl noch andere Daten gesendet.

Zum Lernen würde ich trotzdem gerne mal wissen, wo ich "detail-view vom notify" finde

erwin

Ad LOVF: da gabs schon lange keine posts mehr zu diesem Thema, evtl auch mal ins wiki schauen...
Ad Detail-view: In den Raum gehen, wo das notify definiert ist, und auf den link mit dem DeviceName klicken...
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

joc_w

So, super, vielen Dank jetzt klappt es!
Allerdings muss ich sagen, dass ich da niemals drauf gekommen wäre, bin ja nun kein Programmierer.
Und bzgl. Detail View habe ich dazugelernt und die Einträge gefunden.

Jetzt allerdings doch noch eine Frage, wie das "Rückwärts" also zum senden der Soll Temperatur funktioniert.

Da müsste der Code doch in etwa so aussehen, obwohl dieser so leider noch nicht funktioniert:

define SetTempWZ KNX 0/1/215:dpt9
attr SetTempWZ IODev WG_KNX
attr SetTempWZ room KNX
define KNXtoFHEM notify SetTempWZ set Zi1_Hz:desired-temp g1 $EVTPART1

erwin

ok,
du willst die Soll-Temperatur (eingestellt am KNX-dev) ins FHT setzen. korrekt ?
define KNXtoFHEM notify SetTempWZ:getG1.* set Zi1_Hz desired-temp $EVTPART1Kurze Erklärung:
im SetTempWZ gibt es ein reading getG1 - mit dem Sollwert.
damit wird das KNXtoFHEM notify getriggert.
..Ob der set command fürs FHT device so korrekt ist, bin ich nicht sicher, aber das kannst du ja vorher testen.
l.g. erwin
PS: Man könnte beide Funktionalitäten auch in EINEM KNX Device unterbringen, Beispiele hierzu im wiki
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

joc_w

Hallo Erwin,

1000 Dank, passt jetzt alles!  :)
hätte ich mal früher hier gepostet, hatte vorher schon einige Stunden Gelesen und Ausprobiert und wurde dann leider nicht mit Erfolg belohnt...
Aber auch wirklich komplizierte Syntax...

erwin

ZitatAber auch wirklich komplizierte Syntax...
Ja das stimmt, aber ab jetzt kannst du ja von dir selbst "abschreiben"....
und Hilfe gibts natürlich in der cmdref, im wiki und auch hier!

PS: Schon mal "help notify" oder "Help KNX" eingetippt in der FHEM-cmdline ?
Für das erstellen von notifies gibts einen Trick:
den eventmonitor im Browser aufmachen, auf den gewünschten event warten, die betreffende Zeile markieren, UND
"Create/Modify Device" anklicken, und schon ist ein notify oder andere helper-devices angelegt!
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

joc_w

Hallo nochmal,

jetzt hatte ich mich doch etwas zu früh gefreut, als zumindest die via KNX gesendeten Sollwerte auf der FHT Seite im
 FHEM Webinterface ankamen, ausgeführt werden sie allerdings leider nicht.
Habe auch schon herausgefunden, dass es ein Formatproblem ist, die FHT Komponenten reagieren nur auf eine Kommastelle in 0.5 Grad Schrittten.
Auf KNX Seite habe ich dieses Format bisher nicht erzeugen können, es werden immer 2 Nachkommastellen gesendet. Gibt es auf der FHEM Seite vielleicht eine Rundungsformel, die hier einen empfangenen 12,34 Wert auf 12,5 gerundet formatiert?

So sieht mein Notify biher aus:define KNXtoFHEMw notify SetTempZiW:getG1.* set ZiW_Hz desired-temp $EVTPART1

erwin

#13
Hi,
... auch nicht unbedingt eine KNX Frage...
ZitatGibt es auf der FHEM Seite vielleicht eine Rundungsformel
Mit mathematischen runden ist es leider nicht getan, du (bzw. FHT) will ja 0.5 grad Schritte haben!
Vorschlag zum probieren:
define KNXtoFHEMw notify SetTempZiW:getG1.* {
  my $value = sprintf('%.1f',$$EVTPART1/5) * 5;
  fhem("set ZiW_Hz desired-temp $value");
  Log3 undef, 1,"ZiW_Hz set to $value";
}
ich mache mir bei sowas meist ein Log3 Stmt dazu, damit sehe ich im FHEM-Log, was ich berechnet habe.
l.g.erwin

EDIT: eigentlich ist das unnötig, weil lt. FHT cmd-ref:
ZitatAll *-temp values need a temperature as argument, which will be rounded to 0.5 Celsius.
Temperature values must between 5.5 and 30.5 Celsius. Value 5.5 sets the actuator to OFF, value 30.5 set the actuator to ON
... sollte also mit beliebigen Nachkommastellen funktionieren!
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...