(Gelöst) smartvisu: device.rtr => eingestellter Sollwert auf den KNX-Bus schreib

Begonnen von E3EAT, 16 Mai 2016, 11:58:23

Vorheriges Thema - Nächstes Thema

E3EAT

Hallo Community,

seit einiger Zeit arbeite ich mit FHEM auf meinem RasPi und bin an sich begeistert. Bisher konnte ich jedes Ziel umsetzen und alles funktioniert zuverlässig.
Die Dokumentation ist echt gut, das hilft ungemein. => Danke!      Weiter so!  :D

Aktuell komme ich aber an einer Stelle nicht weiter, alle Threads zu diesem Thema scheinen aber stark in Richtung HM zu gehen und ich kann mir daraus nicht direkt eine Lösung ableiten.

Folgendes funktioniert bereits:
Die Temperaturen von den 1-Wire-Sensoren werden mittels Notify auf den KNX-Bus gesendet.


Was ich aber nicht zum Laufen bekomme:
Verwendung von device.rtr in smartVISU => Solltemperatur setzen. Als finales Ziel will ich die eingestellte Solltemp. auf den KNX-Bus senden, als Zwischenziel würde ich aber überhaupt erstmal die Temperatur einstellen können. Unabhängig ob für die Solltemperatur GAD zugewiesen ist oder nicht, es wird beim Versuch die Temperatur zu ändern immer NaN angezeigt.

Im HM-Bereich wird hier wohl mit desired-temp gearbeitet,...

Bevor ich jetzt Logs und Configs dazu poste erstmal die Frage ob es an sich überhaupt realisierbar ist wie ich mir das vorstelle und ob das jemand schon realisiert hat.

Ich bin für jeden Hinweis dankbar.


dev0

Smartvisu kennt keine KNX, HM, XYZ Devices, sondern nur FHEM Devices. Wenn FHEM Dein physikalisches Gerät steuern kann, dann kann sv das auch. Vor 4 Stunden habe ich eine ähnliche Frage schon hier beantwortet: https://forum.fhem.de/index.php/topic,53414.0.html

E3EAT

Mit einem Dummy zu arbeiten habe ich auch schon versucht, leider erfolglos. Im Log von FHEM erscheint dann folgendes

define kueche_temp dummy
dem GAD von sv dann dem Dummy zugewiesen mit read + write -Rechten

Zitat
PERL WARNING: Use of uninitialized value $reading in string eq at FHEM/fhconverter.pm line 194.
PERL WARNING: Use of uninitialized value $reading in concatenation (.) or string at FHEM/fhconverter.pm line 199.
MB: NumDirect converter got [] from kueche_temp,  but cant interpret it as a number
MB: NumDirect converter received [NaN] but cant interpret it as a number
MB: NumDirect converter received [NaN] but cant interpret it as a number

Ich weiß nicht in welchem Format der Wert von sv kommt oder welche ABläufe und Konvertierungen da im Hintergrund laufen.


drkongo

Du musst den EIB-Objet im FEHM das model dpt9 (Datentyp der Temperatur, ist auch im ETS einsehbar) oder tempsensor hinzufügen.
Dann im GAD bei deinem fronthem device entsprechend den fogendes auswählen.

Reading state
converter: NumDirect
cmd set: Value

Welche Raumtemperaturregler hast du? (MDT?). Ich habe gerade dem "SollWert setzten"-Objekt und dem "Sollwert senden"-Objekt die gleiche Gruppenadresse gegeben. Und das scheint zu funktionieren.

E3EAT

ja, RTR wird ein MDT ,ist aktuell unterwegs zu mir.

fhem.cfg

#RaumTemp SOLL auf KNX:
define KNX_RT_SOLL_KG_BUERO EIB 0/0/35
attr KNX_RT_SOLL_KG_BUERO IODev KNX
attr KNX_RT_SOLL_KG_BUERO model tempsensor
attr KNX_RT_SOLL_KG_BUERO room KG_BUERO, KNX
define FileLog_KNX_RT_SOLL_KG_BUERO FileLog ./log/KNX_RT_SOLL_KG_BUERO-%Y.log KNX_RT_SOLL_KG_BUERO
attr FileLog_KNX_RT_SOLL_KG_BUERO logtype text
attr FileLog_KNX_RT_SOLL_KG_BUERO room KG_BUERO, KNX


beim GAD:
device        KNX_RT_SOLL_KG_BUERO
reading      state
converter   NumDirect
cmd set     value
read
write


Auch hier dann wieder folgender Eintrag im Log:
Zitat
NumDirect converter got [???] from KNX_RT_SOLL_KG_BUERO, state but cant interpret it as a number
NumDirect converter received [NaN] but cant interpret it as a number


in der HTML des Raumes:

{{ device.rtr('rtr1', 'Heating', 'KNX_RT_IST_KG_BUERO.sw', 'KNX_RT_SOLL_KG_BUERO.sw', 'bath_rtr_comfort', 'bath_rtr_night', 'bath_rtr_frost', 'bath_rtr_state', 'bath_rtr_text',5) }}




drkongo

Probier mal bitte dpt9 anstatt tempsensor

also
attr KNX_RT_SOLL_KG_BUERO model dpt9

E3EAT

vielen vielen Dank, dein Hinweis brachte mich auf den richtigen Weg!

Mir war jetzt aufgefallen, dass bei der Zuweisung der GAD die Werte "state" und "value" nicht vorgeschlagen wurden. Das lag wohl daran, dass die verwendete GA 0/0/35 noch nicht initialisiert wurde. Ich habe über die ETS den Wert 20°C auf die GA geschrieben und siehe da, bei der Zuweisung von reading und cmd set wurden die werte auch vorgeschlagen. Anschließend hat auch alles direkt funktioniert.

Zur Vollständigkeit und für Leute die das Problem ggf. auch mal haben:
Die komplette Lösung:

smartVISU:

{{ device.rtr('rtr1', 'Heating', 'KNX_RT_IST_KG_BUERO.sw', 'KNX_RT_SOLL_KG_BUERO.sw', 'bath_rtr_comfort', 'bath_rtr_night', 'bath_rtr_frost', 'bath_rtr_state', 'bath_rtr_text',5) }}


fhem.cfg

#RaumTemp SOLL auf KNX:
define KNX_RT_SOLL_KG_BUERO EIB 0/0/35
attr KNX_RT_SOLL_KG_BUERO IODev KNX
attr KNX_RT_SOLL_KG_BUERO model dpt9
attr KNX_RT_SOLL_KG_BUERO room KG_BUERO, KNX
define FileLog_KNX_RT_SOLL_KG_BUERO FileLog ./log/KNX_RT_SOLL_KG_BUERO-%Y.log KNX_RT_SOLL_KG_BUERO
attr FileLog_KNX_RT_SOLL_KG_BUERO logtype text
attr FileLog_KNX_RT_SOLL_KG_BUERO room KG_BUERO, KNX


die GA initial mit einem Wert beschreiben (mit ETS oder FHEM), bei mir ist die GA 0/0/35

beim GAD:
device        KNX_RT_SOLL_KG_BUERO
reading      state
converter   NumDirect
cmd set     value
read
write


Danach sollte es funktionieren.


Vielen Dank!