Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

Begonnen von trilu, 23 Februar 2014, 12:23:22

Vorheriges Thema - Nächstes Thema

kadettilac89

Hi Dirk,

ich habe gesehen, dass du im Github eine v1.0 mit der NewAsksin baust. Wie ist der Stand dieses Branch-Zeigs. Sollte es schon halbwegs funktionieren? Ich möchte mir 2 Sensoren mit SHT30 bauen und würde die neue Version als Basis nutzen.

Sollte die IDE-Entwicklungsumgebung gehen, ich weiß dass du Eclipse verwendest, ich glaube als Compiler wird hier auch auf die Arduino-IDE zurück gegriffen oder?

Dirk

Zitat von: Gernott am 02 Februar 2017, 22:35:25
Ich habe mich mal durchgekämpft und zum Schluß Deine Firmware über hmusb-OTA installiert. Leider startet der Sensor damit nicht. Am Ende des Flashvorganges fehlt das
Device rebooted
Die LED hat weiterhin einmal lang und 2x kurz geblinkt.

Ich habe dann mal die normale Firmware v0.15 geflasht. Heureka! Da hat sich mein Arduino Nano brav als Innenraumsensor gemeldet. Also, prinzipiell geht es, nur die Spezialfirmware hängt beim Flashen.
Das ist merkwürdig. Ich schaue mir das die Tage einmal an.

ZitatErgänzung:
Da ich ja keinen Universalsensor habe, habe ich einfach den Teilerausgang an A1 gehängt. Damit bekomme ich die Spannung dann schon mit der Originalfirmware gemessen. Die Stufen sind nur etwas grob aufgelöst (0.1 V roh, ~0.3 V nach Korrektur). Das wurde wohl damals zur Beruhigung der Anzeige so eingerichtet. Werde also mich mal in die Firmware hineinvertiefen und mir eine geänderte Version kompilieren. Der Nano zieht im Betrieb etwa 6 mA, kommt vermutlich von der hellen roten Betriebs-LED. Bin froh, überhaupt soweit gekommen zu sein. Vielen Dank noch einmal!
Du kannst dir auch mal den "NewAsksin-Branch" ansehen den kadettilac89 schon entdeckt hat. da ist die Spannungsmessung schon mit eingebaut. Ist aber noch nicht ganz fertig, vor allem der FHEM-Teil muss noch angepasst werden. Da kommen auch noch ein paar neue Register dazu.


Zitat von: kadettilac89 am 10 Februar 2017, 21:18:50
ich habe gesehen, dass du im Github eine v1.0 mit der NewAsksin baust. Wie ist der Stand dieses Branch-Zeigs. Sollte es schon halbwegs funktionieren?
Ja, Funktioniert schon soweit. Ist aber noch nicht voll getestet.
Dind auch schon ein paar neue Funktionen eingebaut. die beiden letzten 4 Bytes der Message enthaten aktuell die Spannung am ADC2 und die Echolänge von einem Ultraschallsensor.

ZitatIch möchte mir 2 Sensoren mit SHT30 bauen und würde die neue Version als Basis nutzen.
Mach das. Ich will vielleicht die Sensor-Funktionen noch Kapseln, so dass man mit wenig Änderungen andere Sensoren andocken kann. Mal schauen.

ZitatSollte die IDE-Entwicklungsumgebung gehen, ich weiß dass du Eclipse verwendest
Das ist das Ziel. Hab ich aber noch nicht getestet. Probier es mal Bugfixes kann ich dann mit einbauen.

Zitatich glaube als Compiler wird hier auch auf die Arduino-IDE zurück gegriffen oder?
Ja, ich benutze das Arduino-Plugin in Eclipse. Aber noch eine etwas ältere Version.



@hastrobe, hast ne PM



Zitat von: Gernott am 08 Februar 2017, 23:13:49
Habe Deinen Code nach einigen Versuchen zum Laufen bekommen. Mir war aber aufgefallen, daß die Spannungswerte doch ziemlich streuen. Der Teilerausgang war stabil. Also habe ich mal den Aref oszillografiert. Da gibt es nach dem Einschalten eine ziemliche Spitze und es dauert bei meinem Nano etwa 1 bis 1.2 ms bis die Referenz stabil ist. Also habe ich den Start der Messung um 2 ms verzögert.
Ok, guter hinweis. Soweit hatte ich das noch gar nicht getestet. Das werde ich in der neuen FW. berücksichtigen.


Viele Grüße
Dirk

kadettilac89

Zitat von: Dirk am 10 Februar 2017, 23:20:36
Ja, Funktioniert schon soweit. Ist aber noch nicht voll getestet.
Dind auch schon ein paar neue Funktionen eingebaut. die beiden letzten 4 Bytes der Message enthaten aktuell die Spannung am ADC2 und die Echolänge von einem Ultraschallsensor.

Hi Dirk, ich habe mal zum Testen den Sketch auf einen Arduino nano gespielt. Ich habe nicht geschafft lowBatLimitTHPL auf einen anderen Wert zu setzen. Sollte das weiterhin per Config-Button gegen Masse funktionieren? Oder nur warten (lazy config)? Nach dem Drücken des Config-Buttons hatte ich dann ACK Missing oder ähnlich als Status und CMDs failed. Ich habe jetzt erstmal mit der alten Firmware gearbeitet.

Kann es sein, dass die Frequenz ein Problem macht? Der nano hat 16mhz ... kein Asksin Bootloader sondern die Serial / pairinginformation manuell gesetzt. Parameter auch auf 0 gesetzt damit die Werte nicht aus dem Bootloader gelesen werden.

Ich warte bis deine neue Version zum Testen freigegeben wird. Will dich nicht mit irgend welchen Problemen nerven solange du noch am Bauen bist.

Noch eine Frage da du dich in Asksin auskennst, weißt du warum in Asksinneu keine interne Spannungsmessung mehr enthalten ist? War in der alten in Battery.cpp enthalten.

Linef

Dirk hat einige Anpassungen von mir übernommen - ich habe seine Version mal getestet - hat bereits gut funktioniert.
Auch lazy Config. Das muss natürlich auch in der entsprechenden Datei in FHEM konfiguriert werden.

Batteriemessung ist weiterhin enthalten.  Sogar mit 1/100V.
Taster sollte auch weiterhin gegen Masse geschaltet sein.

Martin
fhem auf cubietruck, HM-USB-CFG-2, CUL-V3, 6x HM-CC-RT-DN, 5x HM-SEC-SD, 2x HM-SEC-SCo, 5x HM Eigenbausensoren, AVR-Heizungsgateway

PeMue

Hallo zusammen,

kann mir mal jemand bitte sagen, wie die Überprüfung der Spannung richtig funktioniert? Ich bin der Meinung, dass ich das Register lowBatLimitTHPL gesetzt habe. Muss ich sonst noch was machen? Die Batterie ist bei der Kälte vor zwei Wochen wieder in die Knie gegangen und ich habe es nur am ActionDetector gemerkt. Hier mal eine List meines Sensors:

Internals:
   CHANGED
   DEF        F10001
   IODev      PMCUL01
   LASTInputDev PMCUL01
   MSGCNT     15
   NAME       HM_Dach_T_P_L
   NR         241
   NTFY_ORDER 50-HM_Dach_T_P_L
   PMCUL01_MSGCNT 15
   PMCUL01_RAWMSG A140DA270F10001F1000000C70026AF000005F40A8C::-70:PMCUL01
   PMCUL01_RSSI -70
   PMCUL01_TIME 2017-02-11 19:19:52
   STATE      T: 19.9 L: 15.24 P: 990.3 P-NN: 1018.5
   TYPE       CUL_HM
   lastMsg    No:0D - t:70 s:F10001 d:F10000 00C70026AF000005F40A8C
   protCmdPend 3 CMDs pending
   protLastRcv 2017-02-11 19:19:52
   protSnd    15 last_at:2017-02-11 19:19:52
   protState  CMDs_pending
   rssi_at_PMCUL01 avg:-70.4 min:-75 max:-67.5 lst:-70 cnt:15
   Readings:
     2017-02-11 18:50:38   Activity        alive
     2017-02-02 19:28:54   D-firmware      0.15
     2017-02-02 19:28:54   D-serialNr      USO6607220
     2017-02-11 18:40:58   R-lowBatLimitTHPL set_1.8 V
     2017-02-11 19:19:52   batVoltage      2.7
     2017-02-11 19:19:52   battery         ok
     2017-02-11 19:19:52   luminosity      15.24
     2017-02-11 19:19:52   pressure        990.3
     2017-02-11 19:19:52   pressure-nn     1018.5
     2017-02-11 19:19:52   state           T: 19.9 L: 15.24 P: 990.3 P-NN: 1018.5
     2017-02-11 19:19:52   temperature     19.9
   cmdStack:
     ++A001F10000F1000100050000000000
     ++A001F10000F1000100081212
     ++A001F10000F100010006
   Helper:
     HM_CMDNR   13
     PONtest    1
     mId        F102
     rxType     156
     Expert:
       def        1
       det        1
       raw        0
       tpl        0
     Io:
       newChn     +F10001,02,00,00
       nextSend   1486837192.27264
       prefIO
       rxt        2
       vccu
       p:
         F10001
         00
         00
         00
     Mrssi:
       mNo        0D
       Io:
         PMCUL01    -68
     Prt:
       bErr       0
       sProc      2
     Q:
       qReqConf   00
       qReqStat   00
     Role:
       chn        1
       dev        1
     Rpt:
       IO         PMCUL01
       flg        A
       ts         1486837192.18684
       ack:
         HASH(0x1596df8)
         0D8002F10000F1000100
     Rssi:
       At_pmcul01:
         avg        -70.4
         cnt        15
         lst        -70
         max        -67.5
         min        -75
     Shadowreg:
       RegL_00.    12:12
Attributes:
   IODev      PMCUL01
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   event-min-interval state:360,batVoltage:43200
   event-on-change-reading battery
   event-on-update-reading state,batVoltage
   expert     1_allReg
   firmware   0.15
   model      HB-UW-Sen-THPL-O
   peerIDs    00000000,
   room       0_Dach
   serialNr   USO6607220
   subType    THPLSensor

Blöderweise funktioniert auch der Wettermast meiner WS500 Wetterstation nicht mehr , sprich bei mir auf dem Dach ist gerade echt tote Hose  ;D

Danke für Eure Hilfe.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Gernott

#2285
Zitat von: PeMue am 11 Februar 2017, 19:28:47
Ich bin der Meinung, dass ich das Register lowBatLimitTHPL gesetzt habe. Muss ich sonst noch was machen?
Das Reading steht noch auf set_, daher wird es noch nicht übernommen worden sein. Der noch aktive Wert war wohl bei 1.0 V, das war bei mir der Originalwert. Da kann eine der beiden Batterien/Akkus schon völlig leer bzw. umgepolt sein.
Bei meinen Sensoren habe ich zur Übernahme immer mehrfach den Anlernknopf drücken müssen, bis alle pending commands abgearbeitet waren. Danach immer ein getConfig zur Kontrolle machen und wieder ein paar Mal drücken.

Gruß
G.

PeMue

Zitat von: Gernott am 11 Februar 2017, 21:44:43
Das Reading steht noch auf set_, daher wird es noch nicht übernommen worden sein.
Ok, einmal Anlernknopf drücken und das set_ ist weg. Dann muss ich das wohl beim Innensensor auch noch machen  ;) Vielen Dank.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Gernott

Wenn Du der Sache nicht traust, kannst Du ja mal statt Batterie ein regelbares Netzteil anschließen und die Spannung langsam unter die Schwelle senken. Versuch macht kluch...

Gruß
G.

PeMue

Zitat von: Gernott am 11 Februar 2017, 23:01:37
Wenn Du der Sache nicht traust, kannst Du ja mal statt Batterie ein regelbares Netzteil anschließen und die Spannung langsam unter die Schwelle senken. Versuch macht kluch...
Solange der Sensor temporär auf dem Schreibtisch liegt und nicht auf dem Dach hängt, geht das alles  ;D Aber genau das hatte ich vor. Die Bosch Rauchmelder stehen als nächstes auf dem Programm (mal schauen, ob die Mail vor dem Piepsen kommt) ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Linef

Zitat von: Gernott am 11 Februar 2017, 21:44:43
Bei meinen Sensoren habe ich zur Übernahme immer mehrfach den Anlernknopf drücken müssen, bis alle pending commands abgearbeitet waren. Danach immer ein getConfig zur Kontrolle machen und wieder ein paar Mal drücken.

Die bisherige Version hat Lazy-Config nicht implementiert. Zwar ist in der FHEM-Datei HMConfig_SenTHPL.pm das lc-Flag gesetzt, so daß FHEM die Funktion nutzen kann, aber in der Firmware des Sensors ist die Funktionalität nicht implementiert - deshalb muss immer noch bei jeder Config-Änderung der Knopf gedrückt werden.

Die Funktionalität wird jetzt dann aber kommen - läuft auf meinen Sensoren seit über einem halben Jahr bestens.

Martin
fhem auf cubietruck, HM-USB-CFG-2, CUL-V3, 6x HM-CC-RT-DN, 5x HM-SEC-SD, 2x HM-SEC-SCo, 5x HM Eigenbausensoren, AVR-Heizungsgateway

Gernott

Zitat von: Linef am 11 Februar 2017, 23:58:03
Die Funktionalität wird jetzt dann aber kommen
Der eigentliche Antrieb des Fortschritts ist Bequemlichkeit! Danke für die Entwicklung.
Gruß
G.

Linef

Zitat von: kadettilac89 am 11 Februar 2017, 18:40:58
Kann es sein, dass die Frequenz ein Problem macht? Der nano hat 16mhz ... kein Asksin Bootloader sondern die Serial / pairinginformation manuell gesetzt. Parameter auch auf 0 gesetzt damit die Werte nicht aus dem Bootloader gelesen werden.
Bei 16 MHz kommt bei  der Spannungsmessung ein weiteres Problem hinzu: der ADC wird bei einem Prescaler von 64 dann mit 250 KHz betrieben - das liegt außerhalb der Sollspezifikation von 50-200KHz. Ist zwar erlaubt, reduziert dann aber die Genauigkeit. Also dann besser den Prescaler auf 128 setzen.

Martin
fhem auf cubietruck, HM-USB-CFG-2, CUL-V3, 6x HM-CC-RT-DN, 5x HM-SEC-SD, 2x HM-SEC-SCo, 5x HM Eigenbausensoren, AVR-Heizungsgateway

kadettilac89

Zitat von: Linef am 12 Februar 2017, 00:26:15
Bei 16 MHz kommt bei  der Spannungsmessung ein weiteres Problem hinzu: der ADC wird bei einem Prescaler von 64 dann mit 250 KHz betrieben - das liegt außerhalb der Sollspezifikation von 50-200KHz. Ist zwar erlaubt, reduziert dann aber die Genauigkeit. Also dann besser den Prescaler auf 128 setzen.

Martin
Hi Martin,

Spannungsmessung war nicht das Problem. Ich hatte im Serialmonitor etliche "Timed out" messages und im Status Missing ACK. Habe nun das selbe Setup mit einem Pro Mini 8MHz gemacht und der lief auf Anhieb. Meine Vermutung war, dass der Takt 16Mhz das Timing mit dem Cul / Fhem nicht vertragen hat. Vielleich hätte ich irgendwo in einem Lib noch den Takt eintragen müssen. Aber egal, habe nun am Breadboard ein Setup mit SHT31 laufen und der meldet fleißig Werte.

Linef

Der Takt muss auf jeden Fall irgendwo eingetragen werden, da an einigen Stellen ein _delay_ms(...) verwendet wird (z.B. bei der Ansteuerung des CC1101) und dieser Delay basiert direkt auf dem CPU-Takt!
Bei mir (Atmel-Studio) muss er global über das Define F_CPU=8000000 gesetzt werden.

Martin
fhem auf cubietruck, HM-USB-CFG-2, CUL-V3, 6x HM-CC-RT-DN, 5x HM-SEC-SD, 2x HM-SEC-SCo, 5x HM Eigenbausensoren, AVR-Heizungsgateway

kadettilac89

Zitat von: Linef am 12 Februar 2017, 10:57:00
Der Takt muss auf jeden Fall irgendwo eingetragen werden, da an einigen Stellen ein _delay_ms(...) verwendet wird (z.B. bei der Ansteuerung des CC1101) und dieser Delay basiert direkt auf dem CPU-Takt!
Bei mir (Atmel-Studio) muss er global über das Define F_CPU=8000000 gesetzt werden.

Martin

Die grundsätzliche Takteinstellung erhält der Compiler durch die Vorgabe von Typ und Takt/Spannung in den IDE-Einstellungen, das habe ich auch richtig gesetzt. Das spiegelt die F_CPU in Atmel wider. Ich habe auch einen 16mhz mit alter Firmware am laufen ohne dass ich was im Sourcecode änderte. Wahrscheinlich ist es im Sourcecode auch noch enthalten oder der Quarz auf dem nano ist zu ungenau. Ich habe vor einer Weile mit fuses und Takt rumgespielt, wenn hier im Compiler 8 statt 16 ausgewählt wird kann man nicht mal pairen ... was aber bei mir funktioniert hatte.

Ist aber nicht mehr relevant, werde sowieso meine Sensoren mit pro mini bauen da diese auch weniger Strom brauchen. Nanos sind komfortabler zum Testen da USB gleich mit an Board ist ....