Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

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

Vorheriges Thema - Nächstes Thema

Tom Major

Der "internal compiler error: Segmentation fault" ist ein gcc Bug der öfters vorkommt, das Netz ist voll davon.

Es gibt diverse workarounds, meiner ist in der Arduino IDE / Settings die Box 'Compiler warnings' auf einen anderen als den aktuellen Eintrag zu stellen (es gibt 4 Einträge). Das hilft bei mir immer.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

Spezialtrick

#3016
Hallo Tom,

vielen Dank für deine schnelle Antwort. Das Ändern der Compiler warnings hat leider nicht geholfen. Dafür konnte eine Neuinstallation der IDE die Fehlermeldungen vollständig beseitigen.

Leider bekomme ich weiterhin keine Ausgaben auf dem Serial Monitor. Ich habe das Gefühl, dass der Sensor direkt nach dem Starten hängenbleibt. Jedoch nur, wenn er am FTDI Adapter hängt.

Nach dem Öffnen des Serial Monitors startet der Sensor ja neu dann blinkt die LED einmal auf, geht wieder aus und wieder an und bleibt dann auch dauerhaft an. Dieses Verhalten konnte ich bei bisher zwei Sensoren, einmal Atmega328 auf deiner "Sensor P/L/H/T v2.01" Platine und ein nackter Pro Mini, reproduzieren.

Wenn der Sensor nicht an den FTDI angeschlossen ist, blinkt die LED dreimal auf und bleibt danach auch erstmal aus.

Mit einem anderen Sketch aus der AsksinPP v4 Lib funktioniert die Ausgabe komischerweise ganz normal.
FHEM - Debmatic - Zigbee2MQTT - Homekit

Gernott

#3017
Zitat von: Spezialtrick am 20 August 2019, 15:28:09
Nach dem Öffnen des Serial Monitors startet der Sensor ja neu dann blinkt die LED einmal auf, geht wieder aus und wieder an und bleibt dann auch dauerhaft an.
Kann es sein, daß es mit der verwendeten Spannungsmessung und dem eingestellten Wert für BAT_VOLT_CRITICAL zusammenhängt? Dann geht u.U. der Sensor nach dem ersten Durchlauf in den Dauerschlaf.
Bei mir war das der Fall, wenn ich die externe Batterie messe, aber für das Flashen direkt auf die +3.3V einspeise.

papa

Zitat von: Gernott am 19 August 2019, 22:02:18
Ich probiere gerade mal 500 ms.
Egal wie ich das setze. Ich habe immer wieder Aussetzer. Irgendwas stimmt da noch nicht :-(
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

jp112sdl

#3019
Was mich ja auch wundert, dass das Wandthermostat immer 3 Telegramme mit dem selben Messagecounter schickt.
CLIMATECTRL_EVENT, INFO und WEATHER.
z.B.
ignore 0C 05 86 5A 5154B0 000000 8C E3 3C  - 432234
ignore 0E 05 84 10 5154B0 000000 0B 8C E3 0B 00  - 442222
ignore 0C 05 84 70 5154B0 000000 00 E3 3C  - 452206


Vielleicht ist das CLIMATECTRL_EVENT (enthält ja das selbe wie WEATHER) noch von Bedeutung?

Tom Major

Zitat von: jp112sdl am 20 August 2019, 19:53:18
Was mich ja auch wundert, dass das Wandthermostat immer 3 Telegramme mit dem selben Messagecounter schickt.
CLIMATECTRL_EVENT, INFO und WEATHER.
z.B.
ignore 0C 05 86 5A 5154B0 000000 8C E3 3C  - 432234
ignore 0E 05 84 10 5154B0 000000 0B 8C E3 0B 00  - 442222
ignore 0C 05 84 70 5154B0 000000 00 E3 3C  - 452206


Vielleicht ist das CLIMATECTRL_EVENT (enthält ja das selbe wie WEATHER) noch von Bedeutung?

Könnte das nicht bedeuten dass die Originalgeräte es auch nicht sauber mit dem Timing hinbekommen und deswegen zeitversetzt 3 Telegramme absetzten einfach um die Wahrscheinlichkeit zu erhöhen?
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

jp112sdl

Wobei nur das Wandthermostat den Typ 10 und 5A sendet.

<frame id="THERMALCONTROL_EVENT" direction="from_device" allowed_receivers="BROADCAST,CENTRAL,OTHER" event="true" type="0x5A" fixed_channel="2">
<parameter type="integer" index="9.2" size="0.6" param="SET_TEMPERATURE"/>
<parameter type="integer" signed="true" index="9.0" size="1.2" param="ACTUAL_TEMPERATURE"/>
<parameter type="integer" index="11.0" size="1.0" param="ACTUAL_HUMIDITY"/>
</frame>


Und THERMALCONTROL_EVENT wird auch auf Kanal 2 gesendet.

Das WDS40 hat jedoch nur WEATHER... kann also nur 1 Telegramm senden...
Hmm...

W

Tom Major

@Spezialtrick
Hmm, viel fällt mir dazu heute nicht mehr ein.
Nur z.B. das, mal den FTDI Adapter so trennen mit Einzelkabeln dass nur Tx und Gnd vom Sensor in Richtung PC gehen, ob das hilft.
Und die Batterie wie Gernott schreibt.

@Jerome
Das WDS40 sendet also nur einmal? Dann ist die Theorie wohl hinfällig mit der Erhöhung der Wahrscheinlichkeit.
Man könnte wahrscheinlich mit dem AskSinPP Analyzer mal einen Millisek. genauen Log machen zwischen Originalgerät und papas Temperatursensor um zu sehen ob da im Original etwas anders im Timing läuft.
Ist aber sicher aufwendig und geht wegen dem Start Synchronisation vom Pairing-Zeitpunkt aus wohl nur nacheinander für beide Geräte? und dann halt die Logs bezüglich Timing analysieren..
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

Spezialtrick

Zitat von: Tom Major am 20 August 2019, 23:01:25
@Spezialtrick
Hmm, viel fällt mir dazu heute nicht mehr ein.
Nur z.B. das, mal den FTDI Adapter so trennen mit Einzelkabeln dass nur Tx und Gnd vom Sensor in Richtung PC gehen, ob das hilft.
Und die Batterie wie Gernott schreibt.

Offenbar hatte mein Atmega einen Defekt. Nachdem ich diesen ausgetauscht habe, erhalte ich auch die gewünschten Ausgaben auf dem Serial Monitor. Allerdings nur, wenn die Option 1 für die Batteriespannungsmessung ausgewählt ist. Gernott hat also den richtigen Hinweis geliefert. Danke!

Komischerweise, kann ich den Sketch lediglich einmal aufspielen, nachdem ich den Bootloader gebrannt habe. Dann klappt es nicht mehr, bis ich wiederrum den Bootloader erneut brenne. Aber damit kann ich leben.

Gibt es einen Trick damit auch die Messwerte des UV Sensors in FHEM auftauchen? Auf dem Serial Monitor konnte ich die Werte sehen.  :)
FHEM - Debmatic - Zigbee2MQTT - Homekit

PeMue

Zitat von: Spezialtrick am 23 August 2019, 15:26:06
Komischerweise, kann ich den Sketch lediglich einmal aufspielen, nachdem ich den Bootloader gebrannt habe. Dann klappt es nicht mehr, bis ich wiederrum den Bootloader erneut brenne. Aber damit kann ich leben.
Welchen Bootloader verwendest Du? Den OTA Bootloader mit HM-ID und Seriennummer? Oder den Standard Ardiono (bzw. Optiboot) Bootloader?

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

Tom Major

Zitat von: Spezialtrick am 23 August 2019, 15:26:06

Komischerweise, kann ich den Sketch lediglich einmal aufspielen, nachdem ich den Bootloader gebrannt habe. Dann klappt es nicht mehr, bis ich wiederrum den Bootloader erneut brenne. Aber damit kann ich leben.

Gibt es einen Trick damit auch die Messwerte des UV Sensors in FHEM auftauchen? Auf dem Serial Monitor konnte ich die Werte sehen.  :)

1x aufspielen: Klingt danach ob der bootldr überschrieben wird.
Ist sketch size < 32k - bldr size gewährleistet?

UV Sensor: mal die customData in Sketch und Perl script anschauen. damit kann man quasi jedes beliebige reading aus den customData für FHEM erzeugen, auch einen UV-Index.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

Spezialtrick

Zitat von: PeMue am 23 August 2019, 15:29:40
Welchen Bootloader verwendest Du? Den OTA Bootloader mit HM-ID und Seriennummer? Oder den Standard Ardiono (bzw. Optiboot) Bootloader?

Gruß Peter

Ich verwende den Standard Arduino Bootloader den Holger hier hinterlegt hat und flashe diesen ebenfalls mit den beiliegenden Tools:

https://github.com/pa-pa/AskSinPP/blob/master/bootloader/avr/ATmegaBOOT_168_atmega328_pro_8MHz.hex

Zitat von: Tom Major am 23 August 2019, 15:38:15
1x aufspielen: Klingt danach ob der bootldr überschrieben wird.
Ist sketch size < 32k - bldr size gewährleistet?

Laut der Ausgabe der Arduino IDE ja:

avrdude: 27658 bytes of flash verified
FHEM - Debmatic - Zigbee2MQTT - Homekit

Spezialtrick

Zitat von: PeMue am 23 August 2019, 15:29:40
Welchen Bootloader verwendest Du? Den OTA Bootloader mit HM-ID und Seriennummer? Oder den Standard Ardiono (bzw. Optiboot) Bootloader?

Sollte ich einen anderen Bootloader verwenden?
FHEM - Debmatic - Zigbee2MQTT - Homekit

PeMue

Zitat von: Spezialtrick am 23 August 2019, 17:25:23
Sollte ich einen anderen Bootloader verwenden?
Eas gibt noch den OTA Bootloader, normalerweise reicht der Standard ...

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

Tom Major

Zitat von: Spezialtrick am 23 August 2019, 15:46:38
Ich verwende den Standard Arduino Bootloader den Holger hier hinterlegt hat und flashe diesen ebenfalls mit den beiliegenden Tools:

https://github.com/pa-pa/AskSinPP/blob/master/bootloader/avr/ATmegaBOOT_168_atmega328_pro_8MHz.hex

Laut der Ausgabe der Arduino IDE ja:

avrdude: 27658 bytes of flash verified

Sieht gut aus, ich habe keine Idee warum das serielle Flashen dann nur einmal geht.

Ich setze sicherheitshalber immer noch die BLB1 Fuse so (2. Bild):
https://github.com/TomMajor/SmartHome/tree/master/Info/Bootloader#standard-bootloader-atmega328p-rc-oszillator-oder-quarz-8mhz
Dann kann die Application nie den bootldr überschreiben (zumindest in der Theorie  ;) )
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker