Autor Thema: Grundsätzliches zum Umgang mit DPT-Varianten  (Gelesen 1069 mal)

Offline wolliballa73

  • Jr. Member
  • **
  • Beiträge: 72
Grundsätzliches zum Umgang mit DPT-Varianten
« am: 30 September 2020, 18:55:17 »
Hallo zusammen,

mich würde mal interessieren, wie ihr das mit den DPT-Untervarianten handhabt.
Wenn ich z.B. einen Temperatursensor habe, kann ich den als dpt9.001 definieren und bekomme dann den Wert als nn.nn °C angezeigt. Sieht zwar nett aus, kann aber nicht direkt für numerische Vergleiche, Berechnungen etc. z.B. in DOIF oder notify, ... verwendet werden da es sich bei 1.25 °C ja um einen String handelt:
defmod di_Frostalarm DOIF ([Temp_aussen:tempNord] <2) (set status_Frostalarm true)Alternative: ich verwende dpt9 und erhalte nur den numerischen Wert 1.25 . Damit kann ich schön rechnen/vergleichen, muss ihn aber für die Anzeige noch um °C erweitern.

Also muss ich entweder bei der Anzeige die Einheiten hinzufügen oder bei Berechnungen die Einheiten wegfiltern - wie löst ihr das elegant?
CU,
Matze

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Grundsätzliches zum Umgang mit DPT-Varianten
« Antwort #1 am: 30 September 2020, 19:33:09 »
Doif hat ein flag um dir Zahl als solche zu extrahieren. Ziemlich einfach damit.
Das Dilemma bleibt.
Es gab mal ein Projekt zum separieren der Einheit, aber das ist gestorben.

Sg Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline Porsti

  • Full Member
  • ***
  • Beiträge: 210
Antw:Grundsätzliches zum Umgang mit DPT-Varianten
« Antwort #2 am: 30 September 2020, 19:50:15 »
Hi,

du kannst nur den numerischen Teil für deine zwecke nutzen. Du kannst es so ganz einfach machen: ([Temp_aussen:tempNord:d] <2)
Ich habe nur in deinem Beispiel von oben das ":d" ergänzt. Hatte a´das selbe Problem.

Gruß
Porsti
____________________________________
fhem 5.9  auf Raspberry 3
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens)

Offline wolliballa73

  • Jr. Member
  • **
  • Beiträge: 72
Antw:Grundsätzliches zum Umgang mit DPT-Varianten
« Antwort #3 am: 30 September 2020, 22:29:57 »
Hallo ihr beiden,

danke für die Antwort - klingt vielversprechend. Leider tut es in meinem Fall noch nicht so, wie es soll.
Im DOIF kriege ich eine Warnung:
warning
condition c01: Argument "" isn't numeric in numeric lt (<)

Die Definition des DOIF:
defmod di_Frostalarm DOIF ([Temp_aussen:tempNord:d] < 2) (set status_Frostalarm true) DOELSE (set status_Frostalarm false)
und hier das KNX-Device:
defmod Temp_aussen KNX 4/1/91:dpt9.001:tempNord 6/4/1:dpt9.001:tempHuette
Ich hab mir noch ein paar Threads zu der Warnmeldung durchgelesen, kann aber beim besten Willen keinen Fehler feststellen  :-[




CU,
Matze

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7449
Antw:Grundsätzliches zum Umgang mit DPT-Varianten
« Antwort #4 am: 02 Oktober 2020, 01:35:54 »
Ein "list" von Temp_aussen beim Problem wäre besser, um die Readings zu sehen. Vermutlich kommt irgendwann gar keine Nummer im Reading.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline wolliballa73

  • Jr. Member
  • **
  • Beiträge: 72
Antw:Grundsätzliches zum Umgang mit DPT-Varianten
« Antwort #5 am: 03 Oktober 2020, 07:11:09 »
Danke - das war's!
Die Meldung kam, wenn ich beim Device "checkall" ausgeführt hab. Allerdings ließ sich die Temperatur nicht auslesen, sondern wurde nur zyklisch gesendet.
CU,
Matze

 

decade-submarginal