Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

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

Vorheriges Thema - Nächstes Thema

maxritti

Zitat von: Dirk am 04 März 2015, 12:56:46
Das ist eigentlich ein Anzeichen dafür, dass das Update grade läuft. Daher kann ich mir die Fehlermeldung nicht erklären.
Welche Firmware hat denn der Sensor jetzt?

Gruß
Dirk
Das schaue ich heute Nachmittag mal.
Wenn es geklappt hat, dann müsste dies bei dem Sensor in FHEM direkt ersichtlich werden oder ist dort ein "getConfig" notwendig?

Dirk

Zitat von: maxritti am 04 März 2015, 13:01:14
Wenn es geklappt hat, dann müsste dies bei dem Sensor in FHEM direkt ersichtlich werden oder ist dort ein "getConfig" notwendig?
Einmal die Configtaste drücken sollte reichen. In der folgenden Device-Info-Message übertragt der Sensor dann auch die Firmwareversion an FHEM.

Gruß
Dirk

Akwak

Zitat von: Dirk am 04 März 2015, 12:56:46

Lösche den Sensor bittte mal aus der CCU und lerne den neu an. Dann sollte der Updatebutton da sein.


Hi,

das hat leider auch nicht geholfen. Der Update Button fehlt trotzdem.

Gruß,
Alfred

Dirk

Zitat von: Akwak am 04 März 2015, 13:27:04
das hat leider auch nicht geholfen. Der Update Button fehlt trotzdem.
Gut, dann muss ich am WE mal schauen woran das liegen kann.

Gruß
Dirk

Akwak


maxritti

#1520
Zitat von: Dirk am 04 März 2015, 13:05:57
Einmal die Configtaste drücken sollte reichen. In der folgenden Device-Info-Message übertragt der Sensor dann auch die Firmwareversion an FHEM.

Gruß
Dirk
Schade. Der Zeit in den Events noch die Version 0.12.
Da muss ich wohl noch mal ran an das flashen.

Wenn Du/Ihr noch Ideen habt, wo es hängen kann, gerne her damit.  :)

/EDIT:

Ich habe während des Flashens die Batterien aus dem Sensor genommen.
Ist doch korrekt oder?
Bevor hier noch Rauchwölkchen raus kommen.

vbs

Bin gerade etwas am Verzweifeln: Ich versuche gerade vergeblich, einen Sensor mit FW 0.12 und seriellem Bootloader auf einen OTA-Bootloader umzustellen. Der Plan ist, den OTA-Bootloader mittles AVRStudio via ISP mit einem AVR-Dragon zu flashen.
Erste Frage kann: Kann es sein, dass die BootSize-Fuse von dem ATMega von 1024 auf 2048 Bytes vergrößert werden muss, wenn man auf den OTA-Bootloader wechselt? Wenn ich das nicht mache, dann bootet der AVR nach dem Flashen gar nicht mehr scheinbar.

Beim Flashen des OTA-Bootloader-Hex-Files wird ja normalerweise auch der Rest des Flashes gelöscht. Hat man eine Chance per OTA dann initial eine neue Firmware aufzuspielen? Ich hab das Gefühl, dass man per OTA nur updaten kann, weil das Gerät schon eine gültige Seriennummer haben muss. Stimmt das so?

Ich würde eigentlich gerne von einem funktionierenden Stand (seriell-Bootloader + 0.12) nur den Bootloader upgraden und dann per OTA auf 0.14 wechseln. Wenn ich jedoch versuche, den OTA-Bootloader zu flashen, ohne dabei den Rest des Flashes zu löschen, schlägt immer das Verify fail mit einer Meldung:

Getting ISP frequency parameters.. SD=0x06 .. OKOK
Reading FLASH input file.. OK
Setting device parameters.. OK!
Entering programming mode.. OK!
Programming FLASH ..      OK!
Reading FLASH ..      OK!
WARNING: FLASH byte address 0x7800 is 0x00 (should be 0x80).. FAILED!
Leaving programming mode.. OK!


Ist die Idee generell blöd oder hat jemand eine Idee, was ich falsch mache? Danke!

Poquito

Hallo zusammen.

Ich interessiere mich ebenfalls sehr für Euer Projekt und würde gerne mitmachen. Leider ist es mir bis heute nicht gelungen meine Entwicklungsumgebung so einzurichten, dass sich die Software fehlerfrei compilieren läßt.
Eigentlich hatte ich mir eingebildet, dass ich zumindest ein wenig Ahnung vom Programmieren habe, aber dieses Projekt läßt mich stark daran zweifeln. Ich lese bereits seit einigen Wochen in dem bereits recht umfangreichen Forum und habe es mit unterschiedlichen AskSin- und Arduino-Versionen probiert, aber es ist mir bisher nicht gelungen die Software fehlerfrei zu compilieren.
Nun hatte ich gehofft, endlich eine funktionierende Version gefunden zu haben, aber auch diese produziert bei mir nur Fehlermeldungen.
Zitat von: Dirk am 01 März 2015, 21:45:25
Neue Firmware 0.14 (Beta)

Hallo Zusammen.
Die letzten Tage habe ich an den Millis() / 49-Tage / Batterie-Bugfix gearbeitet.

Eigentlich sollte diese Version schon auf Basis der neuen Lib erstellt werden. Allerdings ist das doch noch etwas mehr Arbeit wie erwartet.
Daher habe ich die millis() Verarbeitung noch in der alten Lib gefixt.

Ansonsten ist die Funktionalität der Lib identisch mit der Version 0.13

Zusammengefasst sieht der Changelog so aus:

Neue Register (aus Version 0.13)
- transmitTryMax: Sendeversuche des Sensors ohne ACK
- lowBatLimit: Low-Battery Warnschwelle
- ledMode: LED ist beim Senden an oder aus
- altitude: Hier kann die Bezugshöhe für den Luftdruck bereits im Sensor eingestellt werden

.......

Das komplette Packet mit Firmware:
https://github.com/kc-GitHub/Wettersensor/releases/tag/v0.14_beta

Die aktualisierte AskSin-Lib:
https://github.com/kc-GitHub/AskSin/archive/master.zip

........
Ich wäre Euch sehr dankbar, wenn sich jemand die Zeit nehmen könnte, um mir zu helfen die Software so einzurichten, dass auch ich mir einen Wettersensor nachbauen kann.

Danke
Helmut
Raspberry Pi Typ B, 512 MB; FHEM 6.0; CUL V3 868MHz HM; & div. Homematic Sensoren & Aktoren

Dirk

Zitat von: vbs am 04 März 2015, 16:50:00
Kann es sein, dass die BootSize-Fuse von dem ATMega von 1024 auf 2048 Bytes vergrößert werden muss.
Ja. Der serielle Bootloader kommt mit 2k Boot-Flash aus. der OTAU-Bootloader braucht 4k.

ZitatBeim Flashen des OTA-Bootloader-Hex-Files wird ja normalerweise auch der Rest des Flashes gelöscht. Hat man eine Chance per OTA dann initial eine neue Firmware aufzuspielen? Ich hab das Gefühl, dass man per OTA nur updaten kann, weil das Gerät schon eine gültige Seriennummer haben muss.
Beim Flashen des Bootloaders wird alles gelöscht. Die Seriennummer und HM-ID kann beim Flashen mit dem Flashscript gesetzt werden.
Ohne das Setzen hat der Sensor dann die Defaultseriennummer die im Quellcode steht.

Die Fuses sollten so aussehen: lfuse: 0xE2, hfuse: 0xD0, efuse: 0x06

Im Git ist auch ein kleines flashscript. Aktuell leider nur für Windows.
https://github.com/kc-GitHub/Asksin_OTA_Bootloader/tree/master/Tools/Flash-Tool-Windows

Bullshit hatte aber auch eins für perl gebaut. Das findest du hier:
http://www.lxccu.com/hb-raspberry-bootloader-update

Hier ist auch eine Anleitung wie mal den Bootloader mit einem Raspberry Pi flash. Das sollte aber übertragbar sein.

Gruß
Dirk


Dirk

Hi Helmut,

Zitat von: Poquito am 04 März 2015, 17:12:03
Ich lese bereits seit einigen Wochen in dem bereits recht umfangreichen Forum und habe es mit unterschiedlichen AskSin- und Arduino-Versionen probiert, aber es ist mir bisher nicht gelungen die Software fehlerfrei zu compilieren.
Was bekommst du denn für Fehlermeldungen?
Den aktuellen Code kann ich mit der Arduino-IDE 1.6.0 fehlerfrei kompilieren.

Alternativ kannst du auch das fertige Hexfile auf deinen Sensor flashen.
Entweder mit dem OTAU- oder dem seriellen Bootloader.

Gruß
Dirk

Poquito

Hallo Dirk,

mit der Arduino-Version 1.6 wird dem exampel "HM_WDS10_TH_O" aus der AskSin-Library die Datei "Sensor_SHT10_BMP085.h" nicht gefunden, da in der Library nur "Sensor_SHT10_BMP085_TSL2561.h" vorhanden ist. Die anderen Fehlermeldungen die ich mit den vorherigen Versionen bekam kann ich hier nicht mehr sehen, da das Compilieren hier abgebrochen wird.

Gruß
Helmut
Raspberry Pi Typ B, 512 MB; FHEM 6.0; CUL V3 868MHz HM; & div. Homematic Sensoren & Aktoren

maxritti

Jetzt bin ich vielleicht schon mal ein Stück weiter.

Als erstes habe ich mir das hex-File noch mal von github.com geholt.
Und siehe da. Das ist auf einmal grösser als die Datei, welche ich hatte.
Nämlich 244443 Bytes.

Dann hatte sich wohl in dem Parameter -U noch der Laufwerksbuchstabe U: eingeschlichen.

Denn wenn ich nun mit dem Befehl hier versuche zu flashen, kommt etwas anderes.

/fhem/arduino-1.6.0/hardware/tools/avr/bin/avrdude -C/fhem/arduino-1.6.0/hardware/tools/avr/etc/avrdude.conf -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/fhem/HB-UW-Sen-THPL_update_V0_14_001_150301.hex:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: reading input file "/fhem/HB-UW-Sen-THPL_update_V0_14_001_150301.hex"
avrdude: ERROR: No valid record found in Intel Hex file "/fhem/HB-UW-Sen-THPL_update_V0_14_001_150301.hex"
avrdude: read from file '/fhem/HB-UW-Sen-THPL_update_V0_14_001_150301.hex' failed

avrdude: safemode: Fuses OK (H:00, E:00, L:00)

avrdude done.  Thank you.


Ich hoffe mal, dass die Meldungen einem etwas sagen.

Sollte das HEX File daran schuld sein?
Das habe ich mir einfach mal via

wget https://github.com/kc-GitHub/Wettersensor/blob/v0.14_beta/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301.hex

gezogen.

Dirk

Zitat von: Poquito am 04 März 2015, 17:42:41
mit der Arduino-Version 1.6 wird dem exampel "HM_WDS10_TH_O" aus der AskSin-Library die Datei "Sensor_SHT10_BMP085.h" nicht gefunden, da in der Library nur "Sensor_SHT10_BMP085_TSL2561.h" vorhanden ist. Die anderen Fehlermeldungen die ich mit den vorherigen Versionen bekam kann ich hier nicht mehr sehen, da das Compilieren hier abgebrochen wird.
Ah, um die Examples geht es. Ja diese wurden nach den Patches der Lib nicht weiter gepflegt.
Daher hatte ich auch schon überlegt diese Examples zu löschen.

Ich denke das einfachste wird es sein wenn du dir den Code vom Sensor anschaust.





Zitat von: maxritti am 04 März 2015, 17:42:54
Nämlich 244443 Bytes.
Die Größe stimmt nicht.
Das hier:
https://github.com/kc-GitHub/Wettersensor/raw/v0.14_beta/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301.hex
ist 68.124 kBytes groß.

Daher auch die Fehlermeldung "No valid record found"

Zitatwget https://github.com/kc-GitHub/Wettersensor/blob/v0.14_beta/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301.hex
schau mal in dein Hexfile rein. Da ist HTML-Code drinn.

Gruß
Dirk

Poquito

Hallo Dirk,

wenn ich es mit "Wettersensor-0.14_beta.zip" versuche sieht es bei mir folgendermaßen  aus:

ZitatArduino: 1.6.0 (Windows 7), Platine: "Arduino Pro or Pro Mini, ATmega328 (3.3V, 8 MHz)"

WetterSensor.ino: In function 'void cmdReset(uint8_t*, uint8_t)':
WetterSensor.ino:102:48: error: too few arguments to function 'void pHex(uint8_t*, uint8_t, uint8_t)'
In file included from D:\Users\Admin\Documents\Arduino\libraries\AskSin/AskSinMain.h:35:0,
                 from Register.h:1,
                 from WetterSensor.ino:2:
D:\Users\Admin\Documents\Arduino\libraries\AskSin/utility/Serial.h:68:6: note: declared here
void pHex(uint8_t *buf, uint8_t len, uint8_t mode);        // print a couple of bytes in HEX format
      ^
WetterSensor.ino: In function 'void cmdConfigChanged(uint8_t*, uint8_t)':
WetterSensor.ino:141:54: error: too few arguments to function 'void pHex(uint8_t*, uint8_t, uint8_t)'
In file included from D:\Users\Admin\Documents\Arduino\libraries\AskSin/AskSinMain.h:35:0,
                 from Register.h:1,
                 from WetterSensor.ino:2:
D:\Users\Admin\Documents\Arduino\libraries\AskSin/utility/Serial.h:68:6: note: declared here
void pHex(uint8_t *buf, uint8_t len, uint8_t mode);        // print a couple of bytes in HEX format
      ^
WetterSensor.ino: In function 'void cmdStatusRequest(uint8_t*, uint8_t)':
WetterSensor.ino:152:56: error: too few arguments to function 'void pHex(uint8_t*, uint8_t, uint8_t)'
In file included from D:\Users\Admin\Documents\Arduino\libraries\AskSin/AskSinMain.h:35:0,
                 from Register.h:1,
                 from WetterSensor.ino:2:
D:\Users\Admin\Documents\Arduino\libraries\AskSin/utility/Serial.h:68:6: note: declared here
void pHex(uint8_t *buf, uint8_t len, uint8_t mode);        // print a couple of bytes in HEX format
      ^
WetterSensor.ino: In function 'void HM_Remote_Event(uint8_t*, uint8_t)':
WetterSensor.ino:157:54: error: too few arguments to function 'void pHex(uint8_t*, uint8_t, uint8_t)'
In file included from D:\Users\Admin\Documents\Arduino\libraries\AskSin/AskSinMain.h:35:0,
                 from Register.h:1,
                 from WetterSensor.ino:2:
D:\Users\Admin\Documents\Arduino\libraries\AskSin/utility/Serial.h:68:6: note: declared here
void pHex(uint8_t *buf, uint8_t len, uint8_t mode);        // print a couple of bytes in HEX format
      ^
Fehler beim Kompilieren.

  Dieser Report hätte mehr Informationen mit
  "Ausführliche Ausgabe während der Kompilierung"
  aktiviert in Datei > Einstellungen

Gruß Helmut
Raspberry Pi Typ B, 512 MB; FHEM 6.0; CUL V3 868MHz HM; & div. Homematic Sensoren & Aktoren

Dirk

Ok, vielleicht sollte ich die Lib auch taggen.
Da hab ich natürlich schon weiterentwickelt.
Daher müsstest du auch den Sensorcode vom Master nehmen.

Oder diesen Link hier:
https://github.com/kc-GitHub/AskSin/archive/c7c2910944212bea6dd199e9c3ace6c02ce29347.zip

Der Code passt auch zur getaggten Version 0.14.

Ich habe den Link aber mal in die Releasnote eingefügt.

Gruß
Dirk