Bausatz HM_Sen_RD_O

Begonnen von trilu, 27 Juli 2013, 20:26:25

Vorheriges Thema - Nächstes Thema

betateilchen

so, nun hab ich mal param global definiert - keine Änderung beim Anlegen der Spannung. Die Heizung bleibt an.

Übrigens:

Wenn ich das peeren der beiden internen Channels probiere, bekomme ich im Log folgende Fehlermeldung:


Argument "out_Regen_Heizung" isn't numeric in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 2657.
Argument "20EC0402" isn't numeric in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 2657.


Wie man sieht, ist es egal, ob man den Namen oder die Channel-ID verwendet.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

Hi,

kann eigentlich nicht sein.
Das Attribut param ist zu 100% drin.
Ob das reading mit powerOn funktioniert konnte ich nicht testen - aber wenn schon das Attribut fehlt hast du nicht mein neues File. Hast du das aus dem Post genommen?
Habe es noch einmal kontrolliert - das File ist mindestens soweit korrekt

Gruss Martin

betateilchen

Ich hatte zwar schon das Paket hier aus dem Thread genommen, aber der doofe Google Chrome macht daraus immer ein .pl anstatt einem .pm File - ich hatte es nicht umbenannt.


2013-08-02 14:49:02.839 CUL_HM out_Regen_Heizung on
2013-08-02 14:49:08.046 CUL_HM out_Regen_Sensor trigger: 1:0 (to out_Regen)


Aber die Heizung wird trotz jetzt vorhandenem Parameter offAtPon nicht abgeschaltet.
Vorher war die Meldung vom Sensor nach dem einschalten übrigens "dry" oder "rain" und nicht trigger.

Internals:
   DEF        20EC0402
   EVENTS     4
   NAME       out_Regen_Heizung
   NR         354
   STATE      on
   TYPE       CUL_HM
   chanNo     02
   device     out_Regen
   Readings:
     2013-08-02 14:51:14   CommandAccepted yes
     2013-08-02 14:51:48   state           on
   Helper:
     pOn        1
     Param:
       offAtPon   1
     Role:
       chn        1
Attributes:
   expert     2_full
   group      Balkon Wetter
   model      HM-Sen-RD-O
   param      offAtPon
   peerIDs    
   room       20_Wetter,17_Balkon


Internals:
   DEF        20EC0401
   EVENTS     4
   NAME       out_Regen_Sensor
   NR         353
   STATE      0
   TYPE       CUL_HM
   chanNo     01
   device     out_Regen
   Readings:
     2013-08-02 14:48:12   R-eventFilterTime 0.5 s
     2013-08-02 14:48:12   R-transmitTryMax 6
     2013-08-02 14:48:12   RegL_01:          08:00 22:64 23:05 30:06 00:00
     2013-08-02 14:52:01   state           dry
     2013-08-02 14:51:53   trigger         1:dry (to out_Regen)
   Helper:
     getCfgList all
     getCfgListNo 4
     Role:
       chn        1
     Shadowreg:
Attributes:
   eventMap   rain:50 dry:0
   expert     2_full
   group      Balkon Wetter
   model      HM-Sen-RD-O
   peerIDs    
   room       20_Wetter,17_Balkon


Internals:
   DEF        20EC04
   EVENTS     3
   HMUSB_MSGCNT 31
   HMUSB_RAWMSG E20EC04,0000,1333E963,FF,FFAF,02A61020EC0412700006010000
   HMUSB_RSSI -81
   HMUSB_TIME 2013-08-02 14:52:01
   IODev      HMUSB
   LASTInputDev HMUSB
   MSGCNT     31
   NAME       out_Regen
   NR         352
   STATE      CMDs_done_events:5
   TYPE       CUL_HM
   channel_01 out_Regen_Sensor
   channel_02 out_Regen_Heizung
   lastMsg    No:02 - t:10 s:20EC04 d:127000 06010000
   protLastRcv 2013-08-02 14:52:01
   protResnd  4 last_at:2013-08-02 14:48:29
   protResndFail 1 last_at:2013-08-02 14:48:33
   protSnd    5 last_at:2013-08-02 14:51:09
   protState  CMDs_done_events:5
   rssi_HMUSB avg:-70.5 min:-71 max:-70 lst:-70 cnt:2
   rssi_at_HMUSB avg:-82.48 min:-86 max:-78 lst:-81 cnt:31
   Readings:
     2013-08-02 12:55:01   CommandAccepted yes
     2013-08-02 14:48:11   PairedTo        0x127000
     2013-08-02 14:48:11   R-intKeyVisib   invisib
     2013-08-02 14:48:11   R-localResDis   off
     2013-08-02 14:48:11   R-pairCentral   0x127000
     2013-08-02 14:48:11   R-transmDevTryMax 6
     2013-08-02 14:48:11   RegL_00:          02:01 0A:12 0B:70 0C:00 14:06 18:00 00:00
     2013-08-02 14:52:01   state           CMDs_done_events:5
   Helper:
     burstEvtCnt 5
     mId        00A7
     rxType     1
     Respwait:
     Role:
       dev        1
     Rssi:
       Hmusb:
         avg        -70.5
         cnt        2
         lst        -70
         max        -70
         min        -71
       At_hmusb:
         avg        -82.4838709677419
         cnt        31
         lst        -81
         max        -78
         min        -86
     Shadowreg:
Attributes:
   expert     2_full
   firmware   1.3
   group      Balkon Wetter
   model      HM-Sen-RD-O
   peerIDs    
   room       20_Wetter,17_Balkon
   serialNr   KEQ0117003
   subType    sensRain
   webCmd     getConfig
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

ok, jetzt war mein Fehlern, falscher Kanal...

versuch den einmal

betateilchen

2013-08-02 15:05:26.648 CUL_HM out_Regen_Heizung on
2013-08-02 15:05:31.823 CUL_HM out_Regen_Sensor trigger: 1:0 (to out_Regen)
2013-08-02 15:05:39.965 CUL_HM out_Regen_Sensor 0


aber die Heizung bleibt an.


2013.08.02 15:05:26.587 1: HMLAN_Parse: HMUSB R:E20EC04   stat:0000 t:134030EF d:FF r:FFAF     m:00 A610 20EC04 127000 0602C800
2013.08.02 15:05:31.708 1: HMLAN_Parse: HMUSB R:E20EC04   stat:0000 t:13404505 d:FF r:FFB2     m:01 A441 20EC04 20EC04 010100
2013.08.02 15:05:31.996 1: HMLAN_Parse: HMUSB R:E20EC04   stat:0000 t:13404615 d:FF r:FFB1     m:01 A041 20EC04 20EC04 010100
2013.08.02 15:05:33.532 1: HMLAN_Parse: HMUSB R:E20EC04   stat:0000 t:13404C24 d:FF r:FFAE     m:01 A041 20EC04 20EC04 010100
2013.08.02 15:05:35.051 1: HMLAN_Send:  HMUSB I:K
2013.08.02 15:05:35.516 1: HMLAN_Parse: HMUSB V:03C3 sNo:JEQ0534751 d:1DAFAC O:127000 t:134053E6 IDcnt:0003
2013.08.02 15:05:35.580 1: HMLAN_Parse: HMUSB R:E20EC04   stat:0000 t:13405417 d:FF r:FFB2     m:01 A041 20EC04 20EC04 010100
2013.08.02 15:05:39.644 1: HMLAN_Parse: HMUSB R:E20EC04   stat:0000 t:134063EB d:FF r:FFAD     m:01 A041 20EC04 20EC04 010100
2013.08.02 15:05:39.868 1: HMLAN_Parse: HMUSB R:E20EC04   stat:0000 t:134064CF d:FF r:FFAF     m:02 A610 20EC04 127000 06010000
2013.08.02 15:06:00.055 1: HMLAN_Send:  HMUSB I:K
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

2013-08-02 15:25:18.900 CUL_HM out_Regen_Sensor trigger: 2:50 (to out_Regen)
2013-08-02 15:25:27.131 CUL_HM out_Regen_Sensor 50
2013-08-02 15:25:27.532 CUL_HM out_Regen_Heizung on


Zumindest das onAtRain scheint zu funktionieren. Und wenn der Sensor dann wieder trocken ist:

2013-08-02 15:26:33.304 CUL_HM out_Regen_Sensor 0
2013-08-02 15:26:34.482 CUL_HM out_Regen_Heizung off


Das heißt doch, wenn der Parameter "onAtRain" gesetzt ist und es nicht regnet, wenn der Sensor Spannung bekommt, müsste die Heizung ausgehen? Mal testen...

2013-08-02 15:29:38.409 CUL_HM out_Regen_Heizung on
2013-08-02 15:29:44.414 CUL_HM out_Regen_Sensor trigger: 1:0 (to out_Regen)
2013-08-02 15:29:51.809 CUL_HM out_Regen_Sensor 0
2013-08-02 15:29:52.198 CUL_HM out_Regen_Heizung off


funktioniert :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

was ist eigentlich localResDis

und warum geht trigger an das Device und nicht an den Heizungs-Channel?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

registerkurzbeschreibung ist in "get regList" - wie ich es verstanden habe...:

   0: localResDis      |   - to -           |          |exp| local reset disable options:on,off

sollte eben den reset am Device (local) abschalten. Also kein Reset mehr, wenn man lange anlernen drückt.

Zitatund warum geht trigger an das Device und nicht an den Heizungs-Channel?
weil der heatChannel sich nicht peeren lässt. Du kannst gerne noch einen Versuch machen und den Channel mit irgendeinem Sensor peeren (z.B. dem rain channel oder einem Taster). danach - sollte es funktioniert haben - ein getConfig. Dann bitte mitschneiden, damit ich es nachvollziehen kann.

Gruss Martin

Nachtrag: powerOn ist auch gekommen? Sollte ich dem Device zuweisen... ist sicher noch falsch.

betateilchen

Zitat von: martinp876 schrieb am Fr, 02 August 2013 16:40registerkurzbeschreibung ist in "get regList" - wie ich es verstanden habe...:
...
sollte eben den reset am Device (local) abschalten. Also kein Reset mehr, wenn man lange anlernen drückt.

Achso... um die Konfigurationstaste drücken zu können, muss man übrigens das Gerät zerlegen, wenn man es einmal in Betrieb hat. Die Taste ist von außen nicht zugänglich. Man braucht die Taste aber nicht wirklich, wenn man irgendwas machen will. Ein getconfig oder auch jeder andere Befehl wird sofort ausgeführt, auch ohne Taste drücken.

ZitatNachtrag: powerOn ist auch gekommen? Sollte ich dem Device zuweisen... ist sicher noch falsch.

ich habe bisher kein powerOn gesehen.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

ok, ich sehen. Der Sensor schickt (leider ) erst die Trigger und dann den Status des Rain channels. Da muss ich umbauen - schade, wäre zu einfach gewesen.

Gruss Martin

dann sollte es dies gewesen sein Version 3579 incl powerOn für Device und heating off at powerOn wenn "programmiert"

betateilchen

Mal so gesagt: wenn man schon Automatikbetrieb will, funktioniert das doch mit onAtRain ganz super. Nach dem Anlegen der Spannung dauert es eben ein paar Sekunden, bis die erste Sensormeldung kommt, und dann wird korrekt geschaltet. MIR reicht das eigentlich so als Funktionalität. So oft wird die Spannung ja nicht getrennt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marc2

Moin !

Also ein PowerOn sehe mit der Version 3579 ehrlich gesagt auch nicht. Macht aber nichts,
da die Steuerung über onAtRain wunderbar funktioniert ! Wie immer vielen Dank !

Mir ist gerade noch aufgefallen, dass "toggle" nach wie vor nur an, aber nicht abschaltet.
Das Setzen des level Readings behebt das Problem:

*** 10_CUL_HM.pm 2013-08-02 21:19:58.000000000 +0200
--- /tmp/10_CUL_HM.pm 2013-08-02 23:06:41.081401495 +0200
*************** sub CUL_HM_Parse($$) {##################
*** 880,885 ****
--- 880,886 ----
     $val = hex($val)/2;
   }
   push @event, "state:$val";
+  push @event, "level:".($val eq "off"?"0 %":"100 %");
   
   if ($mNo eq "00" && $chn eq "02" && $val eq "on"){
     $hHash->{helper}{pOn} = 1;


Folgenden Schönheitsfehler könnte man noch beheben:

Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 3275.
Use of uninitialized value $_ in hash element at ./FHEM/10_CUL_HM.pm line 4068.


Er kommt nach Anschalten des Sensors, sobald dieser erstmalig "dry" meldet.

Gruß, Marc

betateilchen

2013-08-02 23:12:42 CUL_HM out_Regen_Sensor trigger: 1:0 (to out_Regen)
2013-08-02 23:12:42 CUL_HM out_Regen powerOn:
2013-08-02 23:12:52 CUL_HM out_Regen_Sensor 0
2013-08-02 23:12:53 CUL_HM out_Regen_Heizung off


Da taucht das powerOn schon auf... sieht aber trotzdem komisch aus. Und als Reading? negativ...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marc2

Hmm, sehe ich deswegen nicht, weil das Device grundsätzlich NACK sendet. Die beiden
Channels funktionieren hingegen wunderbar. Habe schon alles einmal neu gepairt, allerdings
ohne Verbesserung. Hier der Mittschnitt eines "statusRequests" gegen das Device:


2013.08.02 23:52:13.664 1: HMLAN_Send:  HMLAN1 S:+20ECC4,00,01,
2013.08.02 23:52:13.666 1: HMLAN_Send:  HMLAN1 S:S4104469F stat:  00 t:00000000 d:01 r:4104469F m:0A A001 F14321 20ECC4 010E
2013.08.02 23:52:13.823 1: HMLAN_Parse: HMLAN1 R:R4104469F stat:0001 t:2A1D17F9 d:FF r:FFC6     m:0A 8002 20ECC4 F14321 80
2013.08.02 23:52:13.836 1: HMLAN_Send:  HMLAN1 S:+20ECC4,00,01,
2013.08.02 23:52:13.838 1: HMLAN_Send:  HMLAN1 S:S4104474B stat:  00 t:00000000 d:01 r:4104474B m:0B A001 F14321 20ECC4 020E
2013.08.02 23:52:14.224 1: HMLAN_Parse: HMLAN1 R:R4104474B stat:0001 t:2A1D1989 d:FF r:FFC7     m:0B 8002 20ECC4 F14321 80


Gruß, Marc

martinp876

powerOn wird immer als Reading gemeldet. Wie sonst? Erzeugt natürlich auch einen Event.

@betateilchen: kanns funktioniert der statuerequest auf beiden Kanäle?

@marc: kannst du einmal die rohmessages beim poweron mitschneiden? Bisher kenne ich nur 2 Verhalten beim starten. Könnte sein, dass deins eine3. Variante hat.
Und richtig, toggel nutzt level zum Schalten

Nachtrag
@Marc: hast du alle 3 entities definiert?

Zitat$name in concatenation (.) or string at fhem.pl line 3275

scheint einer zu fehlen.