MAX Ecotaster auswerten

Begonnen von QuaGS, 21 September 2014, 12:24:57

Vorheriges Thema - Nächstes Thema

QuaGS

Ich kaue seit einiger Zeit auf einem Problem mit notify herum, dabei geht es doch um die absoluten Basics!
Aber von Vorn: Ich hebe FHEM auf einem Mini-ITX-System mit Knoppix installiert. Der Server startet ohne Fehlermeldungen auch nach dem Update von soeben.
WEB, CUN2 und auch alles andere startet ohne Probleme. Momentan betreibe ich daran meine 7 MAX-Heizkörperthermostate, 3 MAX-Fensterkontakte und den MAX-Ecotaster. Alle Zustände, manuellen Änderungen, Ansprache der Geräte in der Gruppe, Messungen kommen auf dem Server an und werden sauber protokolliert.
Das klingt so weit alles sehr gut, jetzt möchte ich aber "nur", dass die Heizkörperthermostate einen bestimmten Wert annehmen, wenn der Ecotaster gedrückt wird. Dazu habe ich ausprobiert

define EcoTasterNotifyAn notify EcoTaster:open set HKT_Wohnzimmer desiredTemperature 13
define EcoTasterNotifyAn notify EcoTaster:on set HKT_Wohnzimmer desiredTemperature 13
define EcoTasterNotifyAn notify EcoTaster:1 set HKT_Wohnzimmer desiredTemperature 13
oder
define EcoTasterNotifyAn notify MAX_023cdc:open set MAX_085c90 desiredTemperature 13
define EcoTasterNotifyAn notify MAX_023cdc:on set MAX_085c90 desiredTemperature 13
define EcoTasterNotifyAn notify MAX_023cdc:1 set MAX_085c90 desiredTemperature 13
oder
define di_EcoTasterAn DOIF ([EcoTaster] eq "open") (set HKT_Wohnzimmer desiredTemperature 13)
define di_EcoTasterAn DOIF ([EcoTaster] eq "on") (set HKT_Wohnzimmer desiredTemperature 13)
define di_EcoTasterAn DOIF ([EcoTaster] eq "1") (set HKT_Wohnzimmer desiredTemperature 13)
oder
define di_EcoTasterAn DOIF ([MAX_023cdc] eq "open") (set MAX_085c90 desiredTemperature 13)
define di_EcoTasterAn DOIF ([MAX_023cdc] eq "on") (set MAX_085c90 desiredTemperature 13)
define di_EcoTasterAn DOIF ([MAX_023cdc] eq "1") (set MAX_085c90 desiredTemperature 13)

oder, oder, oder...

jedes Mal ohne Erfolg.

Kann mir mal jemand den entscheidenden Tipp geben?

Puschel74

Hallo,

ohne zu wissen wie die Geräte bei dir definiert sind wird das wie das berühmte stochern im Heuhaufen.

http://forum.fhem.de/index.php/topic,16311.0.html

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

QuaGS

Danke für die erste Reaktion. Bin immer wieder überrascht...
OK, dann hier die Definitionen (darum geht es doch, oder?):

Der Taster:
Internals:
   CULMAX0_MSGCNT 20
   CULMAX0_TIME 2014-09-21 10:16:55
   DEF        PushButton 023cdc
   IODev      CULMAX0
   LASTInputDev CULMAX0
   MSGCNT     20
   NAME       MAX_023cdc
   NR         64
   RSSI       -71.5
   STATE      closed
   TYPE       MAX
   addr       023cdc
   type       PushButton
   Readings:
     2014-09-21 10:16:55   battery         ok
     2014-09-21 10:16:55   connection      0
     2014-08-25 19:58:21   msgcnt          5
     2014-09-21 10:16:55   onoff           0
     2014-09-21 10:16:55   state           closed
   Internals:
     interfaces switch_passive;battery
Attributes:
   IODev      CULMAX0
   alias      EcoTaster
   room       Zentrale



Heizkörpertaster-Thermostat:

Internals:
   CULMAX0_MSGCNT 11
   CULMAX0_TIME 2014-09-21 10:22:15
   DEF        HeatingThermostat 040e0e
   IODev      CULMAX0
   LASTInputDev CULMAX0
   MSGCNT     11
   NAME       MAX_040e0e
   NR         44
   RSSI       -51
   STATE      12.0 °C (rf error)
   TYPE       MAX
   addr       040e0e
   backend    CULMAX0
   dstsetting 1
   mode       1
   rferror    1
   serial     JEW0016324
   type       HeatingThermostat
   Readings:
     2014-08-21 20:28:56   TimeInformationHour 5
     2014-09-21 10:22:15   battery         ok
     2014-08-24 19:46:19   comfortTemperature 21
     2014-09-21 10:22:15   desiredTemperature 12.0
     2014-08-24 10:37:37   ecoTemperature  17
     2014-09-21 09:42:23   firmware        1.6
     2014-09-21 09:42:23   groupid         0
     2014-08-24 19:46:19   maximumTemperature on
     2014-08-21 21:22:15   measurementOffset 0
     2014-08-24 19:46:19   minimumTemperature off
     2014-09-21 10:22:15   mode            manual
     2014-09-21 10:21:58   msgcnt          142
     2014-09-21 10:22:15   state           12.0 °C (rf error)
     2014-09-21 10:22:15   temperature     20.2
     2014-09-21 09:42:23   testresult      255
     2014-09-21 10:22:15   valveposition   0
     2014-08-24 19:46:26   windowOpenDuration 30
     2014-08-24 19:46:19   windowOpenTemperature 12
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      CULMAX0
   _map       AlleHKT
   alias      HKT_Wohnzimmer
   event-on-change-reading .*
   fp_Erdgeschoss 595,550,5,
   icon       hc_wht_regler
   room       Wohnzimmer


es kommen keine Fehlermeldungen und je nachdem, welche Zeile ich teste erscheint in Unsorted:
Internals:
   CFGFN
   DEF        MAX_023cdc:open set MAX_085c90 desiredTemperature 13
   NAME       EcoTasterNotifyAn
   NOTIFYDEV  MAX_023cdc
   NR         355
   NTFY_ORDER 50-EcoTasterNotifyAn
   REGEXP     MAX_023cdc:open
   STATE      active
   TYPE       notify
Attributes:


Was mich verunsichert ist:
Wie ist das Ereignis auszuwerten: "open", "on", oder "1"?
Wenn ich z.B. "list HKT_Wohnzimmer", also den Alias verwende, eingebe, kommt als Antwort: "No device named HKT_Wohnzimmer found"

Puschel74

Hallo,

wenn du den EventMonitor öffnest und den Taster drückst siehst du was FHEM sieht.

Ein list auf den alias wird nicht klappen - du musst ein list auf den NAME machen.

Da ich nicht weiß was dir der Taster an Events schickt musst du erstmal im EventMonitor schauen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

QuaGS

Der Monitor bringt folgendes:
2014-09-21 10:58:14 MAX MAX_023cdc battery: ok
2014-09-21 10:58:14 MAX MAX_023cdc onoff: 0
2014-09-21 10:58:14 MAX MAX_023cdc connection: 0
2014-09-21 10:58:14 MAX MAX_023cdc closed
2014-09-21 10:58:22 MAX MAX_023cdc battery: ok
2014-09-21 10:58:22 MAX MAX_023cdc onoff: 1
2014-09-21 10:58:22 MAX MAX_023cdc connection: 0
2014-09-21 10:58:22 MAX MAX_023cdc opened

John

#5
Hi QuaGS
deine Frage gehört eigentlich in das Max-Forum.

versuchs mal hiermit:
define EcoTasterNotifyAn notify MAX_023cdc:opened {Log (1,"Device %NAME %EVTPART0 wurde gefeuert");;}

Nachdem du den Eco-Taster auf Auto (=opened) gedrückt hast, sollte in der Log-Datei folgender Eintrag erscheinen:
Zitat2014.09.21 13:32:30 1: Device EcoTasterNotifyAn opened wurde gefeuert

Damit quälst du in deiner derzeitigen Lernphase nicht deine Geräte, sondern nur die Log-Datei.

Ein notify kann man nur richtig konfigurieren, wenn man die genaue Struktur der Ereignisse kennt und die findest du
wie Puschel74 richtig erklärt immer über den Event-Monitor.
Du kannst also entweder mit onoff 0/1 oder closed/opened arbeiten.

Mit deinem bisherigen Lösungsansatz, kann jedermann mit dem Eco-Taster sämtliche Credits deines Culs in sehr kurzer Zeit
verbraten. Hast du daran gedacht ?

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

QuaGS

Danke für die Antworten! Der Fehler lag in dem Status-Wort "opened" bzw. "closed" für den anderen Befehl.
mit:

define di_EcoTasterAus DOIF ([MAX_023cdc] eq "closed") (set MAX_085c90 desiredTemperature 11)
bzw.
define di_EcoTasterAn DOIF ([MAX_023cdc] eq "opened") (set MAX_085c90 desiredTemperature 15)

kann ich das Ereignis vom Taster in den entsprechenden Befehl umsetzen.

John

versuchs mal damit:

Zitatdefine EcoTasterNotifyAn notify MAX_023cdc:opened {set MAX_085c90 desiredTemperature 15;;}

Tip: du kannst deinen Geräten auch aussagekräftige Namen geben wie: MAX_Wohnzimmer.
rename MAX_085c90  MAX_Wohnzimmer

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP