Hauptmenü

Max Werte in Dummy setzen

Begonnen von choetzu, 14 Februar 2017, 11:09:12

Vorheriges Thema - Nächstes Thema

choetzu

Hallo,

ich stehe etwas an.

Ich habe ein Dummy erstellt mit eigenen Readings wie Temp_Max, Co2_Min etc

Nun möchte ich mit DOIFs entsprechende Werte setze. das sollte eigentlich wie folgt gehen:

([Temperaturmesser:co2] > [Werte_Dummy:co2_max]) (setreading Werte_Dummy co2_max $Event) DOELSE

Also, wenn der co2 Wert höher ist, als der bislang gespeicherte Wert im Dummy, dann soll der neue Wert gesetzt werden. So sehe ich immer, wann welche Höchtswerte erzeugt werden. Irgendwie hat er aber Mühe mit ([Temperaturmesser:co2] > [Werte_Dummy:co2_max])

Wo finde ich Hilfe? Danke.

Lg c
Raspi3, EnOcean, Zwave, Homematic

Weisswurstverkäufer

das ist zwar nicht direkt eine Antwort auf Deine Frage - aber mir scheint es, als würde das statistics-Modul genau das machen was Du suchst

choetzu

danke für den Hinweis. Das werde ich mir gleich anschauen.

Trotzdem würde mich aber die Lösung der oben stehenden Problemstellung interessieren. Weiss jemand Bescheid?

danke. Lg C
Raspi3, EnOcean, Zwave, Homematic

igami

Was für "Mühen" gibt es denn?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

choetzu

#4
bei mir kommt folgende Fehlermeldung:

[Tue Feb 14 14:32:02 2017] fhem.pl: Argument "co2: 546" isn't numeric in numeric lt (<) at (eval 8251) line 1.


komisch, er übernimmt den Wert "co2: 546" ins reading und somit wird es dann nicht mehr vergleichbar. Mit $EVTPART1 komm ich auch nicht weiter...


und hier das ganz genaue DOIF in meinem Falle:

([netatmo_D70_ee_50_02_92_3a:co2] < [Werte:SZ_co2_min]) (setreading Werte SZ_co2_min $EVENT) DOELSE
Raspi3, EnOcean, Zwave, Homematic

igami

Zitat von: choetzu am 14 Februar 2017, 14:35:16
komisch, 546 ist doch numerisch. Aber erscheint auch co2: mit zu übernehmen... hmm
Da liegt doch der Hund begraben, guck dir mal die Readings an ob da nicht "co2:" mit drin steht.
Normal könnte man Zahlen rausfiltern, aber dann bekommst du wahrscheinlich auch die 2 aus co2
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

choetzu

danke für die rasche Antwort. und wie könnte ich dies ggf rausfiltern? Ich bin da relativ unbeholfen... lerne aber sehr gerne dazu ;)
Raspi3, EnOcean, Zwave, Homematic

igami

Meines erachtens ist es sinnvoller sich zu fragen wie das da reinkommt.
Poste doch mal bitte ein list von deinem device welches den co2 Wert bereitstellt
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

choetzu

herzlichen dank für deine Hilfe. Hier das Listing:

DEF        70:ee:50:02:92:3a
   Device     70:ee:50:02:92:3a
   INTERVAL   900
   IODev      Netatmo
   LAST_POLL  2017-02-14 17:32:02
   NAME       netatmo_D70_ee_50_02_92_3a
   NOTIFYDEV  global
   NR         177
   NTFY_ORDER 50-netatmo_D70_ee_50_02_92_3a
   STATE      T: 24.4 H: 34
   SUBTYPE    DEVICE
   TYPE       netatmo
   altitude   437
   city       Kappel
   country    CH
   dataTypes  Temperature,CO2,Humidity,Noise,Pressure
   date_setup 2013-12-27 15:00:49
   firmware   102
   last_setup 2013-12-27 15:00:49
   last_status_store 2017-02-14 17:13:27
   last_upgrade 2015-08-19 21:14:20
   location   47.322399029391,7.849207844119
   model      NAMain
   moduleName Schlafzimmer
   openRequests 0
   stationName Luethi Home
   status     no data
   wifi_status 68
   Readings:
     2017-02-14 17:23:19   co2             575
     2017-02-14 17:23:19   humidity        34
     2017-02-14 17:23:19   noise           36
     2017-02-14 17:23:19   pressure        1032.8
     2017-02-14 17:13:12   pressure_abs    980.3
     2017-02-14 17:13:12   pressure_trend  up
     2017-02-14 17:24:58   statHumidityDay Min: 34 Avg: 34 Max: 35 (since: 2017-02-14_13:46:44 )
     2017-02-14 17:24:58   statHumidityMonth Min: 34 Avg: 34 Max: 35 (since: 2017-02-14_13:46:44 )
     2017-02-14 17:24:58   statHumidityYear Min: 34 Avg: 34 Max: 35 (since: 2017-02-14_13:46:44 )
     2017-02-14 16:59:55   statPressureTendency 1h: +0.1 2h: +0.6 3h: +0.5 6h: -
     2017-02-14 17:24:58   statTemperatureDay Min: 24.4 Avg: 24.8 Max: 25.4 (since: 2017-02-14_13:46:44 )
     2017-02-14 17:24:58   statTemperatureMonth Min: 24.4 Avg: 24.8 Max: 25.4 (since: 2017-02-14_13:46:44 )
     2017-02-14 17:24:58   statTemperatureYear Min: 24.4 Avg: 24.8 Max: 25.4 (since: 2017-02-14_13:46:44 )
     2017-02-14 14:21:23   temp_max        25.4
     2017-02-14 00:01:46   temp_min        23.3
     2017-02-14 17:13:12   temp_trend      stable
     2017-02-14 17:23:19   temperature     24.4
   Helper:
     _98_statistics Statistik_Werte
     readingNames:
       temperature
       co2
       humidity
       noise
       pressure
Attributes:
   IODev      Netatmo
   alias      Schlafzimmer
   devStateIcon .*:no-icon
   event-on-change-reading .*
   room       Klima
   stateFormat T: temperature H: humidity
Raspi3, EnOcean, Zwave, Homematic

choetzu

komme irgendwie nicht vom Fleck. Wenn ich anstelle von $EVENT die Variable $EVTPART1 (co2: --> $EVTPART0 und 572-->$EVTPART1) gehts auch nicht.. dann schreibt er mir einfach ins Reading $EVTPART1, dieser Sack ;)
Raspi3, EnOcean, Zwave, Homematic

KernSani

Guck mal in die commandref. DOIF scheint das $EVENTS statt EVTPART zu nennen...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Damian

poste mal list vom betroffenen DOIF-Modul.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choetzu

danke für die Hilfe KernSani.. Das mit dem $EVENTS habe ich sicherlich gefühlte 1000mal gelesen und auch die Beispiele.. Ich kapier das einfach nicht.. ich such nun noch nach anderen Beispielen hier im Forum.. evtl. erlange ich die Erleuchtung...

@Damian: Here we go...

Internals:
   CFGFN
   DEF        ([Netatmo_SZ:co2] < [Werte:SZ_co2_min]) (setreading Werte SZ_co2_min $EVENTS) DOELSE
   NAME       Werte_Test
   NR         928
   NTFY_ORDER 50-Werte_Test
   STATE      initialized
   TYPE       DOIF
   Readings:
     2017-02-14 22:38:57   cmd             0
     2017-02-14 22:38:57   state           initialized
   Condition:
     0          ReadingValDoIf($hash,'Netatmo_SZ','co2') < ReadingValDoIf($hash,'Werte','SZ_co2_min')
   Devices:
     0           Netatmo_SZ Werte
     all         Netatmo_SZ Werte
   Do:
     0:
       0          setreading Werte SZ_co2_min $EVENTS
     1:
       0
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   Readings:
     0           Netatmo_SZ:co2 Werte:SZ_co2_min
     all         Netatmo_SZ:co2 Werte:SZ_co2_min
   Regexp:
     All:
   State:
Attributes:
   room       DOIF
Raspi3, EnOcean, Zwave, Homematic

choetzu

hat geklappt!! Suchen heisst finden... Und so geht es nun...

([Netatmo_SZ:co2] < [Werte:SZ_co2_min]) (setreading Werte SZ_co2_min [Netatmo_SZ:co2]) DOELSE

also kein $EVENTS oder so, sondern einfach wie oben... Happy happy..

Raspi3, EnOcean, Zwave, Homematic

igami

Schön, dass es funktioniert :)
Alternativ kannst du auch userreadings verwenden um das direkt in dem device zu machen
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED