Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

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

Vorheriges Thema - Nächstes Thema

Gernott

Zitat von: locutus am 07 Juli 2020, 21:54:48
Wie habt ihr das beim PIR-Sensor gelöst?
Mit dem HM-SEC-MDIR.ino Sketch.

Tom Major

Zitat von: locutus am 07 Juli 2020, 21:54:48
@Tom Major
Angelehnt an die HB-UNI-Sensor1 PIR-Schaltung, ist aus einem "arbeitslosen" panStamp AVR 2 eine HB-UNI-Sensor1 KSE (Klingelsignalerkennung) entstanden. Ich habe die PIR-Schaltung durch einen Optokoppler ersetzt und im Arduino Sketch ausschließlich #define SENSOR_DIGINPUT aktiviert. Das Senden von Funktelegrammen unabhängig vom eingestellten Sendeintervall funktioniert sehr zuverlässig.
Allerdings wird häufig nach dem Interrupt bedingten Senden das Reading digitalInput nicht auf 1 zurückgesetzt. digitalInput 0 bleibt bis zum nächsten regulären WakeUp/Sendeintervall erhalten. Das Ganze unabhängig davon, ob der RTC oder SYSCLOCK verwendet wird.

Hmm, verstehe ich nicht ganz. Das Feature SENSOR_DIGINPUT sollte bei jeder Änderung ein neues Telegramm an die Zentrale absetzen.
Das kann man im seriellen Debug Log des Gerätes prüfen, einer der hinteren Bytes in der payload ist entweder 0 oder 1 je nach Status des DIGINPUT.
Dann würde ich auch erwarten das FHEM Reading diesen Zustand immer korrekt anzeigt wenn das Telegramm rausgegangen ist.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

locutus

#3107
Das ist aber nicht der Fall. Ob analog oder digital Pin, mit oder ohne Pull-Up Widerstand und trotz Statusänderung, die 0 wird sporadisch beibehalten:

DIGINPUT change
DS18x20  Temperature    : 215
<- 17 10 84 70 A5A502 000000 00 D7 2A 80 58 00 86 47 00 01 0D 1D 00 00  - 21053
DIGINPUT change
DS18x20  Temperature    : 215
<- 17 11 84 70 A5A502 000000 00 D7 2A 80 58 00 86 47 00 01 0D 1D 00 00  - 22366
DIGINPUT change
DS18x20  Temperature    : 215
<- 17 12 84 70 A5A502 000000 00 D7 2A 80 58 00 86 47 00 00 0D 1D 00 00  - 23678
DIGINPUT change
DS18x20  Temperature    : 215
<- 17 13 84 70 A5A502 000000 00 D7 2A 80 58 00 86 47 00 01 0D 1D 00 00  - 24991
DIGINPUT change
DS18x20  Temperature    : 215
<- 17 14 84 70 A5A502 000000 00 D7 2A 80 58 00 86 47 00 00 0D 1D 00 00  - 26304



Zitat von: Gernott am 07 Juli 2020, 22:39:38
Mit dem HM-SEC-MDIR.ino Sketch.
Danke für den Tipp! Der HM-Sen-DB-PCB.ino Sketch ist auf den panStamp wie zugeschnitten.
Anpassungen für panStamp AVR2:

...
#define LED_PIN 9
...
#define CLOCK rtc
...
rtc.init();
...
hal.activity.savePower<SleepRTC>(hal);
...

Mit RTC beträgt der Ruhestrom ca. 1,5 µA.

Bastel-Frank

Hallo zusammen,

ich versuche nun schon ein paar Stunden den Bootloader per Arduino UNO als ISP auf den ATMEGA328P zu flashen. Leider ohne Erfolg. Die Verkabelung ist in Ordnung, einen normalen Nano bekomme ich geflasht.
Ich hoffe, ihr habt einen Tipp für mich?

Viele Grüße
Frank

Gernott

Zitat von: Bastel-Frank am 03 August 2020, 14:53:21
Ich hoffe, ihr habt einen Tipp für mich?
Ich hätte viele. Wäre aber eine Lotterie, wenn Du nicht etwas genauer ausführst, was Du gemacht hast und was Dein Flashprogramm dabei so meldet.

Bastel-Frank

Ich nutze die aktuelle Arduino IDE (habe aber auch direkt mit avrdude versucht). Ein UNO ist als ISP programmiert und anschließend habe ich den Nano mit dem ATmega328P gewählt.

Die Meldungen der IDE sehen so aus ...
avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM7
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Fehler beim Brennen des Bootloaders.
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.



Für mich auffällig ist, dass als Device Signature 0x000000 gemeldet wird. Beim ersten Versuch den Bootloader zur programmieren wurde eine andere Device Signature gemeldet.


Gernott

Zitat von: Bastel-Frank am 03 August 2020, 16:43:36
Für mich auffällig ist, dass als Device Signature 0x000000 gemeldet wird. Beim ersten Versuch den Bootloader zur programmieren wurde eine andere Device Signature gemeldet.
Das klingt nicht gut. Der Atmega wird nicht mehr erkannt und damit nicht geflasht. Wenn er beim ersten Mal noch ansprechbar war, sind die Lötstellen vermutlich in Ordnung. Es gibt eine Methode, einen Atmega wiederzuerwecken, braucht aber eine spezielle Schaltung. Ich hatte eine solchen Fall und habe dann den Atmega ausgewechselt. Die Teile  kosten nicht die Welt und mit Heißluft ist er schnell runter.

Ich hatte bei jungfräulichen Atmega 328 P noch den Takt des ISP-Programmers runtersetzen müssen ( avrdude -B 20), da es mit dem Standardtakt zu Fehlern kam.

Bastel-Frank


Gernott

Zitat von: Bastel-Frank am 04 August 2020, 07:55:40
Wie sieht diese Schaltung aus?
Suche mal im Netz nach "High Voltage Programming". Damit kann man einen verfusten Atmega programmieren. Ich würde aber erstmal einen neuen auflöten und nochmal testen.

Bastel-Frank

#3114
Ich habe eine neue Platine mit neuen Bauteilen bestückt. Beim Auslesen der Fuses kommt diese Meldung avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATMEGA328P is 1E 95 0F


Dies bedeutet, dass sich anscheinend die Device Signature geändert hat. Wenn ich in der avrdude.conf die Device Signature auf 1E 94 06 töte ich den 328P (Bauart TQFP) anscheinend, danach ist er nicht mehr ansprechbar. Kann es sein, dass mit der Standard-Bootloader (ATmegaBOOT_168_atmega328_pro_8MHz.hex) dazu nicht kompatible ist?

PS: Laut Aliexpress hat dieser Chip 20Mhz (https://de.aliexpress.com/item/4000064299962.html?spm=a2g0o.productlist.0.0.372273a8snIhQe&algo_pvid=6eb42ce9-89bd-439e-adc5-5ad0073360b9&algo_expid=6eb42ce9-89bd-439e-adc5-5ad0073360b9-1&btsid=0be3769015965304902233793eb238&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_)

kadettilac89

Zitat von: Bastel-Frank am 04 August 2020, 10:40:36
Ich habe eine neue Platine mit neuen Bauteilen bestückt. Beim Auslesen der Fuses kommt diese Meldung avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATMEGA328P is 1E 95 0F


Dies bedeutet, dass sich anscheinend die Device Signature geändert hat. Wenn ich in der avrdude.conf die Device Signature auf 1E 94 06 töte ich den 328P (Bauart TQFP) anscheinend, danach ist er nicht mehr ansprechbar. Kann es sein, dass mit der Standard-Bootloader (ATmegaBOOT_168_atmega328_pro_8MHz.hex) dazu nicht kompatible ist?


Um hier weiterzuhelfen, woher hast du die FuseBits? Sind diese korrekt? Beschreibe mal welche Quelle du nutzt und was du genau machst, Schritt für Schritt.

HV-Programmer ... falls Interesse, damit habe ich schon mehrere Chips gerettet.

https://www.instructables.com/id/HV-Rescue-Simple/

kadettilac89

Zitat von: Bastel-Frank am 04 August 2020, 10:40:36
Wenn ich in der avrdude.conf die Device Signature auf 1E 94 06 töte ich den 328P (Bauart TQFP) anscheinend, danach ist er nicht mehr ansprechbar.

Fuse 1E .... ext. Crypstal Osc.; Frequency 8.0- Mhz; ....
--> hast du den Quarz richtig angeschlossen mit 2 Kondensatoren und Widerstand?

Kai-Alfonso

Huhu, ich hab noch eine alte Version bei mir gefunden, die ich jetzt mal noch mal nutzen wollte.

Hier ist ein Listing des Devices - wie ihr seht, ist es gepaired mit der Zentrale und liefert Daten wie erwartet:

nternals:
   .triggerUsed 1
   CFGFN     
   DEF        A9C06F
   FUUID      5f410589-f33f-ce3b-2240-3cf4e26d70a0c9d7
   HMUART_EG_MSGCNT 27
   HMUART_EG_RAWMSG 0501004566A270A9C06F0B98D00137002762000208030D48
   HMUART_EG_RSSI -69
   HMUART_EG_TIME 2020-08-22 13:51:08
   HMUART_OG_MSGCNT 51
   HMUART_OG_RAWMSG 0500003966A270A9C06F0B98D00137002762000208030D48
   HMUART_OG_RSSI -57
   HMUART_OG_TIME 2020-08-22 13:51:08
   IODev      HMUART_EG
   LASTInputDev HMUART_OG
   MSGCNT     78
   NAME       HM_A9C06F
   NOTIFYDEV  global
   NR         4110
   STATE      T: 31.1 L: 1331 P: 1008.2 P-NN: 1015.0
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:66 - t:70 s:A9C06F d:0B98D0 0137002762000208030D48
   protCmdDel 6
   protLastRcv 2020-08-22 13:51:08
   protRcv    35 last_at:2020-08-22 13:51:08
   protResnd  8 last_at:2020-08-22 13:51:12
   protResndFail 1 last_at:2020-08-22 13:46:54
   protSnd    67 last_at:2020-08-22 13:51:08
   protState  CMDs_pending
   rssi_at_HMUART_EG cnt:28 min:-81 max:-69 avg:-76.07 lst:-69
   rssi_at_HMUART_OG cnt:51 min:-75 max:-57 avg:-64.74 lst:-57
   .attraggr:
   .attrminint:
   READINGS:
     2020-08-22 13:48:19   .D-devInfo      030100
     2020-08-22 13:48:19   .D-stc          70
     2020-08-22 13:46:23   .R-altitude     0 m
     2020-08-22 13:46:23   .R-burstRx      off
     2020-08-22 13:46:23   .R-ledMode      undef lit:1
     2020-08-22 13:46:23   .R-lowBatLimitTHPL 1.6 V
     2020-08-22 13:46:23   .R-pairCentral  0x0B98D0
     2020-08-22 13:46:23   .R-transmDevTryMax 3
     2020-08-22 13:48:24   .associatedWith HM_A9C06F,HM_A9C06F
     2020-08-22 13:47:32   .peerListRDate  2020-08-22 13:47:32
     2020-08-22 13:51:08   .protLastRcv    20200822135108
     2020-08-22 13:46:18   CommandAccepted yes
     2020-08-22 13:48:19   D-firmware      0.15
     2020-08-22 13:48:19   D-serialNr      UJI4498487
     2020-08-22 13:47:24   PairedTo        0x0B98D0
     2020-08-22 13:47:24   RegL_00.         00:00 01:00 05:64 0A:0B 0B:98 0C:D0 12:10 14:03 24:00 25:00
     2020-08-22 13:51:08   batVoltage      3.40
     2020-08-22 13:51:08   battery         ok
     2020-08-22 13:48:24   cfgState        ok
     2020-08-22 13:51:12   commState       CMDs_pending
     2020-08-22 13:51:08   luminosity      1331
     2020-08-22 13:51:08   pressure        1008.2
     2020-08-22 13:51:08   pressure-nn     1015.0
     2020-08-22 13:48:20   recentStateType info
     2020-08-22 13:51:08   state           T: 31.1 L: 1331 P: 1008.2 P-NN: 1015.0
     2020-08-22 13:51:08   temperature     31.1
   cmdStack:
     ++A0010B98D0A9C06F010E
   helper:
     HM_CMDNR   103
     cSnd       010B98D0A9C06F010E,010B98D0A9C06F010E
     mId        F102
     peerFriend peerRecT
     peerIDsRaw ,00000000
     peerOpt    p:THPLSensor
     regLst     0
     rxType     156
     supp_Pair_Rep 0
     ack:
     cmds:
       TmplKey    :no:1598096904.88233
       TmplTs     1598096904.88233
       cmdKey     1:1:0::HM_A9C06F:F102:01:
       cmdLst:
         assignHmKey noArg
         burstXmit  noArg
         clear      [readings|trigger|register|oldRegs|rssi|msgEvents|msgErrors|attack|all]
         deviceRename newName
         fwUpdate   <filename> <bootTime> ...
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  [List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
         getSerial  noArg
         getVersion noArg
         peerBulk   -peer1,peer2,...- [set|unset]
         peerChan   0 <actChn> ... single [set|unset] [actor|remote|both]
         peerSmart  -peerOpt-
         raw        data ...
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2- ...
         regSet     [prep|exec] -regName- -value- ... [-peerChannel-]
         reset      noArg
         statusRequest noArg
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt    Thermostat_Schlafzimmer_Weather
         tplChan   
         tplDel     
         tplPeer   
     expert:
       def        0
       det        0
       raw        1
       tpl        0
     io:
       newChn     +A9C06F,02,00,00
       nextSend   1598097069.03096
       prefIO     
       rxt        2
       vccu       
       p:
         A9C06F
         00
         00
         00
     mRssi:
       mNo        66
       io:
         HMUART_EG:
           -65
           -65
         HMUART_OG:
           -57
           -57
     prt:
       bErr       0
       sProc      2
       sleeping   0
       wuReSent   2
     q:
       qReqConf   
       qReqStat   
     regCollect:
     role:
       chn        1
       dev        1
     rpt:
       IO         HMUART_EG
       flg        A
       ts         1598097068.80499
       ack:
         HASH(0x7f08890)
         6680020B98D0A9C06F00
     rssi:
       at_HMUART_EG:
         avg        -76.0714285714286
         cnt        28
         lst        -69
         max        -69
         min        -81
       at_HMUART_OG:
         avg        -64.7450980392157
         cnt        51
         lst        -57
         max        -57
         min        -75
     shadowReg:
     tmpl:
Attributes:
   .mId       F102
   IODev      HMUART_EG
   IOgrp      VCCU:HMUART_EG
   autoReadReg 4_reqStatus
   expert     rawReg
   firmware   0.15
   model      HB-UW-Sen-THPL-O
   peerIDs    00000000,
   room       Geräte-Inbox
   serialNr   UJI4498487
   subType    THPLSensor


Aber irgendwie verhält sich das Teil komisch. Er taucht nicht automatisch im Action Detector auf und wenn ich actCycle manuell setzen will kommt folgende Meldung (siehe Anhang)

Per edit der fhem.cfg kann ich das Attribut wohl setzen, hat aber keinen Effekt und keine Fehlermeldung.

Komisch

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Kai-Alfonso

Zitat von: frank am 22 August 2020, 15:31:31
mach mal fhem update

merkwürdig, aber das hat wirklich geklappt. Vielen Dank für den Tipp
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)