Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

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

Vorheriges Thema - Nächstes Thema

MarcelK

Zitat von: Dirk am 11 Februar 2015, 23:08:00
Ja, das hat Trillu in der neuen Lib auch korrigiert.
Und daher mirgiere ich die FW grade auch auf die neue Lib.
Super, das hatte ich schon gehofft dass das in NewAskSin jetzt besser ist, aber noch nicht selbst gecheckt. In 2 Wochen gibt's nen Monat Elternzeit, hoffentlich schaff ich dann auch endlich mal selbst damit in der Praxis rumzuspielen :-)

Viele Grüße, Marcel

kmatthias

Weiter vorne hat mal jemand gefragt, wie man die LED abschalten kann. Leider gab es keine Antwort. Meine Ideen wären: LED zerstören oder LED auslöten oder LED mit Lötzinn überbrücken. Was würde denn funktionieren, ohne den Sensor zu zerstören?

Dirk

ZitatMeine Ideen wären: LED zerstören ...

Die arme LED :)
Du kannst auch die Beta-Firmware 0.13 auf den Sensor Flashen.
Da kann man die LED per Register ausschalten.
https://github.com/kc-GitHub/Wettersensor/blob/master/Firmware-Release/HB-UW-Sen-THPL_update_V0_13_000_141006.eq3

Bitte dann auch das passende pm-file benutzen:
https://github.com/kc-GitHub/Wettersensor/blob/master/Contrib/FHEM/HMConfig_SenTHPL.pm

Gruß
Dirk

kmatthias

#1443
Danke für den Tip. Aber erst bekomme ich "notInBootloader" und dann "failBlock 1". Irgendwas mag er nicht. Gibt es einen Trick, wie man ihn flasht (per OTA)?

Ich mache es aktuell so: Batterien raus, "set sensor_xxx fwUpdate Datei.eq3", Baterien rein und Config drücken.

Außerdem habe ich noch ein Problem: Wenn der Sensor sendet, so blinkt die LED immer 5x kurz und 1x lang. Habe hier irgendwo gelesen, dass der ACK von FHEM fehlt und man 2x pairen muss, damit es geht. Bei mir ändert sich allerdings nichts.

Dirk

Das Flashen direkt mit FHEM funktioniert wohl aktuell nicht.
Du musst mit flash-ota flashen.
Siehe hier: http://forum.fhem.de/index.php/topic,33978.msg263398.html#msg263398

kmatthias

Danke, Dirk. Jetzt geht es. Bleibt einzig noch das Problem, dass die Sensoren scheinbar kein ACK aus FHEM bekommen und ihre Daten 5x schicken. Die LED leuchtet immer 5x kurz und 1x lang. Lässt sich das auch noch beheben?

Ich dokumentiere das alles parallel im Wiki.

bjoernh

Hallo,

also irgendwie stelle ich mich glaube so doof an.
Ich bekomme den Sensor einfach nicht richtig mit einer eigene Seriennummer zum laufen.

Folgendes habe ich jetzt probiert.
Auf den Sensor den OTA Bootloader mit usbasp gebrannt (von hier: https://github.com/jabdoa2/Asksin_OTA_Bootloader/)
Danach startet der Sensor in einer Bootloop:
AskSin OTA Bootloader V0.7.0

TX bootloader sequence
Wait for CB msg
Timeout
CRC fail, Reboot


So weit kann ich es ja auch noch verstehen, schließlich ist ja keine Firmware drauf.

Anschließend habe ich hmcfgusb kompiliert und mit folgendem Kommando via meinem CUL Probiert die Firmware zu laden:
./flash-ota -c /dev/ttyUSB1 -f ../../Downloads/Wettersensor-master/Firmware-Release/HB-UW-Sen-THPL_update_V0_13_000_141006.eq3 -s KEQ0000001

Aber es passiert nichts. Folgende Ausgaben kommen noch beim hmcfgusb:
HomeMatic OTA flasher version 0.097-git

Reading firmware from ../../Downloads/Wettersensor-master/Firmware-Release/HB-UW-Sen-THPL_update_V0_13_000_141006.eq3...
Firmware with 225 blocks successfully read.
Opening culfw-device at path /dev/ttyUSB1 with speed 38400
Requesting firmware-version
Unknown response from CUL: ? (`V is unknown) Use one of B C F i A Z E G M K U Y R T V W X e f l t x
culfw-device firmware version: 1.63
Entering 10k-mode
Waiting for device with serial KEQ0000001


Dies sieht doch auch noch vernünfig aus.

Was ich mir vorstellen könnte, dass die Seriennummer nicht stimmt. Im Readme vom Bootloader steht
ZitatAs SERIAL_NUMBER, set your desired number in the header of bootloader.c. Defaults to KEQ0000001
Leider gibt es diese Einstellung nicht mehr in der bootloader,c Datei.

Kann mir mal bitte einer auf die Sprünge helfen?

Gruß
Björn



bjoernh

Hallo,

jetzt habe ich noch eine Frage.
Wie bekommt Ihr eigentlich den Sketch kompiliert?
Zum einen sind die Fehler mit den header-Dateien, sowie die fehlenden const enthalten.
Dann ist mir noch aufgefallen, dass in der AskSinMain.c die Baudrate der Seriellen Schnittstelle erneut gesetzt wird. Dies macht Probleme, bzw bringt sogar die Kommunikation zum stehen.
Wenn ich nun alle diese Fehler raus habe, stehe ich vor dem nächsten Problem.
Irgendwie funkt er nicht.
Meine Log-Ausgaben sind irgendwie verdreht:
(1624)
14 00 A2 70 FF FF FF 00 00 00 81 18 24 00 00 00 64 00 C8 04 1E (l:21)<- (167947)
14 01 A2 70 FF FF FF 00 00 00 81 1B 23 00 00 00 64 00 C8 04 3D (l:21)<-

Eigentlich müsste es aber so aussehen:
<- 14 00 A2 70 FF FF FF 00 00 00 81 16 23 00 00 00 64 00 C8 04 18 (l:21)(1574)
<- 14 01 A2 70 FF FF FF 00 00 00 81 13 20 00 00 00 64 00 C8 04 31 (l:21)(167925)


Irgendeine Idee, bzw einen Tipp wie man den Sketch richtig kompiliert?

Gruß
Björn

Dirk

Hi Björn,
welche Code-Version versuchst du zu kompilieren?
Ich meine mit der Arduino-IDE gab es ein paar fehlende Includes. Such mal hier im Tread.
Eigentlich kann man da gar nicht von IDE reden. Daher Entwickle und Kompiliere ich mit Eclipse und dem Arduino-Plugin. Dort gibt es keine Fehler beim Kompilieren.

Bei der neuen Version werde ich auch darauf achten dass es mit der Arduino-SW ohne Fehler kompiliert.

Gruß
Dirk

bjoernh

#1449
Hallo Dirk,

ich habe es mit der 1.0er und der 1.5er probiert. Beide gehen nicht.
Source habe ich den Master vom Wettersensor sowie den referenzierten AskSin probiert.
Ich habe aber auch schon den AskSin auf den master angehoben.

Kannst Du mir vielleicht mal dein Eclipse Projekt zur Verfügung stellen?
Ich Doktor jetzt schon den ganzen Tag rum, aber irgendwie bewege ich mich im Kreis.

Bei den verkurksten Ausgaben bin ich auch etwas schauer.
Wenn z.B. folgendes drann steht:
Serial << F("1") << F("2") << F("3") << pTime();

Dann kommt: (56654) 123 raus.
Warum dies so ist, ist eigentlich logisch: An die Serial soll ja 123 + pTime gesendet werden. pTime hat aber eine eigene Serial Variable, welche dann mit der ersten im Konflikt steht.

Gruß
Björn

bjoernh

Hallo,

das ist doch echt zum doof.

Nun habe ich mit das Projekt in Eclipse angelegt. Includepfade gesetzt..

Nun kommt so ein Fehler:
In file included from ../WetterSensor.ino:3:0,
                 from ../.ino.cpp:21:
../Register.h:118:14: error: redefinition of 'HM::s_dtRegs dtRegs'
HM::s_dtRegs dtRegs = {
              ^


Was macht denn hier das doofe Eclipse plugin bzw. das Arduino.
Mir scheint es so, dass Arduino die ino Datei in eine .ino.cpp Datei wandelt.

Gruß
Björn

Dirk

Ich habe vorhin mein Eclipse geupdatet und damit auch das Plugin.
Das hätte ich mal lieber nicht gemacht. Ich bekomme den Fehler aktuell auch :(
Der Kompiliert nicht mal mehr ein nacktes neues Arduino-Sketch mit einer Beispiel-Lib.

bjoernh

Also ein blink Sketch bekomme ich schon kompiliert.
Hast Du unter Filetypes das *.ino und *.pde als cpp und c eingetragen?

Dirk

So, ich habs wieder zum laufen bekommen.

Ich habe jetzt das das aktuelle Plugin und dort Arduino 1.6.0 eingetragen.

füge mal bitte am Anfang der register.h nach der Zeile "#include <AskSinMain.h>" folgendes ein:

#ifndef _REGISTER_h
#define _REGISTER_h


am Ende dann noch ein

#endif


Wenn das klappt, aktualisiere ich das dann auch im Git

Zitat von: bjoernh am 23 Februar 2015, 17:53:58
Hast Du unter Filetypes das *.ino und *.pde als cpp und c eingetragen?
.ino und .cpp stehen hier als C++ Source File
.c steht als C Source File
.pde ist hier nicht eingetragen.

Gruß
Dirk

bjoernh

Das mit dem define passt so.

Kannst Du mir mal bitte dein Projekt exportieren, irgendwas stimmt bei mir in der Reihenfolge immer noch nicht. Jetzt bekomme ich nämlich Linkfehler  :'(