FHEM Forum

FHEM - Hausautomations-Systeme => SlowRF => Thema gestartet von: JochenFHEM am 25 Januar 2026, 21:17:17

Titel: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: JochenFHEM am 25 Januar 2026, 21:17:17
Ich bekomme es bisher nicht hin, die Ventilposition der FHT8 Heizungsaktoren an KNX zu senden.
Problem ist wohl, dass der actuator Wert in % ausgegeben wird.
Mein Code funktioniert zumindest mit den Max Heizungsthermostaten, weil hier der Wert nicht in % ausgegeben wird.
Kann/muss man hier vor Übergabe der Wert noch umgerechnet/umformatiert werden und wenn ja, wie?

Der Code, der für Max funktioniert aber mmit den FHTs nicht:

define ValveZiW KNX 0/5/144:dpt5.001
attr ValveZiW room KNX
define FHEMtoKNXValveZiW notify ZiW_Hz:actuator.* set ValveZiW g1 $EVTPART1

Chat GPT hat mir einen Code mit Perl vorgeschlagen, der aber Fehler erzeugt:

define ValveZiW_to_KNX notify ZiW_Hz:actuator:.* {
  my $val = ReadingsVal("ZiW_Hz","actuator",0);
  fhem("set ValveZiW $val");
}

Für jede Hilfe dankbar!

Titel: Aw: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: Beta-User am 25 Januar 2026, 21:44:37
Die KI kennt scheinbar ReadingsNum() nicht...
Titel: Aw: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: JochenFHEM am 25 Januar 2026, 22:34:46
ich leider auch nicht - wie sicherlich an meiner Frage zu erkennen ist, noch Newbie
Titel: Aw: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: TomLee am 26 Januar 2026, 08:53:15
https://wiki.fhem.de/wiki/DevelopmentModuleAPI#ReadingsNum
Titel: Aw: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: rudolfkoenig am 26 Januar 2026, 10:50:56
Anders formuliert: im Vorschlag von ChatGPT sollte ReadingsVal durch ReadingsNum ersetzt werden.
Titel: Aw: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: joc_w am 26 Januar 2026, 16:35:52
Danke für die Hilfe! Genau das wird sicherlich am Ende funktionieren!

Auf der wiki Seite sieht es auch so aus, dass "ReadingsNum" kein Perl Code ist, weil zumindest die geschweiften Klammern fehlen??

Wenn ich den Chat Gpt Code mit ReadingsNum geändert eingebe, kommt trotzdem folgende Fehlermeldung:

"Unknown command my, try help. Unknown command fhem("set, try help. Unknown command }, try help."

Mein (wahrscheinlich falsch) geänderter Code ohne Perl liefert zwar keine Fehlermeldung, aber gibt auch den Wert nicht weiter.

So habe ich das jetzt eingegeben:


define FHEMtoKNXValveZiW notify ZiW_Hz:actuator.* set ValveZiW g1 ReadingsNum($EVTPART1)
Titel: Aw: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: rudolfkoenig am 27 Januar 2026, 11:27:31
ZitatWenn ich den Chat Gpt Code mit ReadingsNum geändert eingebe, kommt trotzdem folgende Fehlermeldung:
Das haengt (leider) davon ab, wo man das eingibt.
In vielen Faellen muss man ; doppeln und am Ende jeder Zeile (bis auf der letzen) ein \ schreiben:
define ValveZiW_to_KNX notify ZiW_Hz:actuator:.* { \
  my $val = ReadingsNum("ZiW_Hz","actuator",0);;\
  fhem("set ValveZiW $val");;\
}
Das gilt fuer:
- fhem.cfg direkt editieren
- FHEMWEB: "Raw definition" unten auf der Detailseite
- FHEMWEB: + Knopf oben links
Dies gilt nicht in der Detailseite, wenn man auf DEF klickt, da hier klar ist, dass es nur um diese eine Definition geht.

Zitatdefine FHEMtoKNXValveZiW notify ZiW_Hz:actuator.* set ValveZiW g1 ReadingsNum($EVTPART1)
Das wird so nicht funktionieren, weil ReadingsNum nicht als perl Code interpretiert wird, abgesehen davon, dass die ReadingsNum Parameter falsch sind.

Vorschlag stattdessen (als Alternative zu oben):
define FHEMtoKNXValveZiW notify ZiW_Hz:actuator.* set ValveZiW g1 {( ReadingsNum("ZiW_Hz", "actuator", 0) )}
Ein {(...)} in einem set wird als perl ausgewertet.
Titel: Aw: FHT80 Ventilposition ohne "%" an KNX senden
Beitrag von: joc_w am 27 Januar 2026, 22:06:52
Der untere Code funktioniert wunderbar. Wäre ich alleine so natürlich nicht drauf gekommen, darum vielen Dank für die schnelle professionelle Hilfe hier im Forum!