Hauptmenü

Frage zu devspec2array

Begonnen von Rohan, 08 November 2013, 21:57:34

Vorheriges Thema - Nächstes Thema

Rohan

Hallo zusammen,

ich versuche die Ventilöffnung eines HM-CC-RT-DN abzufragen (für "Heizungssteuerung Einfach")

Folgendes

  my @@thermostat = devspec2array("model=HM-CC-RT-DN");;\
  foreach(@@thermostat) {\
    my $ventil=ReadingsVal($_, "ValvePosition", "101 %");;\
    $ventil=substr($ventil, 0, (length($ventil)-2));;\
    $i++;;\
    if ($ventil > 16) {\
      $brauche_waerme=1;;\
      $ventile_mit_bedarf++;;\
    }\
    if ($ventil < 10) {\
      $ventile_im_leerlauf++;;\
    }\
  Log(3,"HKE - Ventilöffnung: " . $_ . " " . $ventil);;\
  }\


ergibt in der Log-Datei folgende Aussage.

Zitat
2013.11.08 21:08:52 3: HKE - Ventilöffnung: UG.Treppe.Heizung 10
2013.11.08 21:08:52 3: HKE - Ventilöffnung: UG.Treppe.Heizung_ClimRT_tr 0
2013.11.08 21:08:52 3: HKE - Ventilöffnung: UG.Treppe.Heizung_ClimaTeam 10
2013.11.08 21:08:52 3: HKE - Ventilöffnung: UG.Treppe.Heizung_Climate 10
2013.11.08 21:08:52 3: HKE - Ventilöffnung: UG.Treppe.Heizung_Weather 10
2013.11.08 21:08:52 3: HKE - Ventilöffnung: UG.Treppe.Heizung_WindowRec 10
2013.11.08 21:08:52 3: HKE - Ventilöffnung: UG.Treppe.Heizung_remote 10

Der HM-CC-RT-DN wird also sieben mal gewertet, was sein "Gewicht" überhöht.

Laut commandref sind "internal" attributes DEF, STATE and TYPE" möglich.

Welche Möglichkeit(en) habe ich, diesen (und zukünftig wohl mehrere) HM-CC-RT-DN nur ein einziges Mal auszuwerten?

Gruß
Thomas

P.S. Möglich, dass diese Frage in den HM-Forenbereich gehört, aber evtl. ist dies auch von allgemeinem Interesse. Und ich bin ja auch noch Anfänger.
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Rohan

#1
Hmmm...

habe einen nach der commandref möglichen Ausweg gefunden.

Beim HM-CC-RT-DN (Edit: Channel 4, also ClimRT_tr) ein attr comment mit dem Wert "Thermostat" erstellt und nun:


  my @@thermostat = devspec2array("comment=Thermostat");;\
  foreach(@@thermostat) {\
    my $ventil=ReadingsVal($_, "ValvePosition", "101 %");;\
    $ventil=substr($ventil, 0, (length($ventil)-2));;\
    $i++;;\
    if ($ventil > 16) {\
      $brauche_waerme=1;;\
      $ventile_mit_bedarf++;;\
    }\
    if ($ventil < 10) {\
      $ventile_im_leerlauf++;;\
    }\
  Log(3,"HKE - Ventilöffnung: " . $_ . " " . $ventil);;\
  }\


bringt nur noch

Zitat
2013.11.08 23:04:22 3: HKE - Ventilöffnung: UG.Treppe.Heizung_ClimRT_tr 0

Also nur noch 1 Eintrag.

Mit dem Erstellen eines attr comment mit dem Wert "Thermostat" auch bei allen HM-CC-VD dürfte ich also nun  alle "Thermostaten" mit einem foreach abfragen können.

Dürfte gelöst sein, falls nicht noch jemand etwas anderes/besseres/alternatives weiß.

Danke für die Geduld. Manchmal ist es gut, einfach darüber zu reden/schreiben, dann kommt die Lösung evtl. von selbst  ;)

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

JoeALLb

Falls dies noch jemand benötigt und diesen alten Thread findet:

"TYPE=CUL_HM:FILTER=NAME=.*_Clima"
funktioniert auch ohne comment
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

DeeSPe

Zitat von: JoeALLb am 27 Januar 2017, 11:10:23
Falls dies noch jemand benötigt und diesen alten Thread findet:

"TYPE=CUL_HM:FILTER=NAME=.*_Clima"
funktioniert auch ohne comment

TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04
Funktioniert auch wenn der Channel umbenannt wurde!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

betateilchen

Funktioniert aber nur bei wirklich modellidentischen devices.
Einen manuell erstellten Kommentar kann man natürlich in jedem beliebigen device unterbringen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!