Verschiedenes > MySensors

Probleme mit OTA via mysbootloader und FHEM

(1/4) > >>

uwetaz:
Hallo,

ich habe OTA mit MYSController und einem GW mit Node jeweils mit NRF24 zum Laufen gebracht und wollte jetzt OTA mal über FHEM probieren. So richtig bekomme ich das aber nicht hin. Ich versuche mal zu beschreiben was nicht klappt (eigentlich kommt nur eine Fehlermeldung im log-File).

Ich habe das GW zusätzlich zu meinem schon vorhandenen RFM69HW GW zum Spielen eingebunden.

Vorab zwei Fragen:
1) Ist es richtig dass das csv File firmware_config.csv heißen muss und die erste Spalte Type eine Art ID der FW ist? Zumindest habe ich es so verstanden, da ich in FHEM ja keinen hex-Filenamen vorgeben kann. FW_TYPE vom Node habe ich jedenfalls auf genau diese Zahl aus dem csv gesetzt (hier 20). Das File sieht so aus
Type,Name,Version,File,Comments
10,Blink,1,Blink.ino.hex,blinking example
20,uwe,1,2021_04_25_mysensors_nrf_temperature.ino.hex,kommentar

2) Liest FHEM sowohl das csv-File als auch das hex-File im Moment des updates oder gibt es sowas ähnliches mit in MYSController mit "Reload Repo"?

Ich habe einen einfachen Sketch mit einer blinkenden LED (via millis Funktion, da kein delay funktioniert) und habe jeweils ein hex-File mit schnellem und eines mit langsamen Blinken. FHEM scheint den node nach set flash auch noch rebooten zu können (LED hört auf zu blinken) aber dann passiert nichts.
Im logfile steht das hier (die zweite Zeile kommt dann aller 2-3s):
2021.05.08 21:08:16 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/00_MYSENSORS.pm line 460.
2021.05.08 21:08:23 3: No firmware defined for type 20 - not flashing!

Nach einem Reboot und nochmaligem Versuch steht zusätzlich zu den obigen Zeilen noch diese Zeile
2021.05.08 21:25:18 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/10_MYSENSORS_DEVICE.pm line 406.


Was mache ich falsch?
Vielen Dank für einen Hinweis
Grüße
Uwe

Beta-User:
Vorab: Ich habe auch schon ewig nichts mehr bzgl. update gemacht, und wie es mit MYSController funktioniert, kann ich nicht sagen, das hatte ich nie im Einsatz...

#460 kann ich nicht zuordnen, in der aktuellen Version sollte es eine andere Zeilennummer sein (falls das uninitialized nicht sogar schon gefixt ist) => FHEM-update durchführen.

Grundsätzlich müsste ein update mit genau derselben File gehen wie mit MYSController, und die Vorgabe betrifft lt. commandref zu MYSENSORS eigentlich eher das Verzeichnis und weniger den Dateinamen. Ggf. zeigst du mal ein list vom GW, ich vermute, an der Stelle paßt was nicht zusammen, die Config-file kann nicht gelesen werden und daher passiert auch nichts. Hast du denn die Nummern in einem Drop-Down in FHEMWEB (zumindest, soweit ich mich entsinne, müßten die zur Auswahl stehen, wenn die File gelesen werden kann).

uwetaz:
Danke für Deine Antwort!

Das FHEM Update habe ich gemacht. Die Fehlermeldung bleibt. Es git nur noch eine Warnung. Die Zeilennummer ist wie erwartet anders.
Versionen vorher
00_MYSENSORS.pm Rev 20188
10_MYSENSORS_DEVICE.pm Rev 20506
nacher
Rev 24385 für beide Files

2021.05.09 19:58:16 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/00_MYSENSORS.pm line 784.
2021.05.09 19:58:23 3: No firmware defined for type 20 - not flashing!

Beim Rumprobieren bin ich eher zufällig über die Ursache gestolpert. Danach ging es: Im GW gibt es ein Attribut dem der Name der csv-Datei übergeben werden muss. Das ist aber standardmäßig erst nach dem Setzen sichtbar.

Da ich vor dem hier beschriebenem Problem über weitere Kleinigkeiten beim Thema OTA gestolpert bin, hätte ich mögliche Ergänzungen für
https://wiki.fhem.de/wiki/MySensors_Starter_Guide#OTA
;siehe Anhang (einmal jpg wo die Änderungen markiert sind und einmal als txt zum Kopieren). Vielleicht hilft das ja jemandem die zwei Abende zu sparen die ich investieren musste.

Ferner ist mir eine Kleinigkeit beim Web-IF in diesem Zusammenhang aufgefallen:
Nach set fw type schließt sich im Web IF das Fenster vom node und es steht nur noch FW_TYP: xxx da. Könnte man das nicht weglassen? Der FW_TYP ist ja in der Node-Maske sichtbar.

Beta-User:
Danke erst mal für die konstruktive Rückmeldung.

Den Text im Wiki habe ich - etwas modifiziert - ergänzt.

Es wäre klasse, wenn du mal checken könntest, ob die angehängten Modulversionen das eine oder andere Problemchen beseitigen.
Da ist v.a. umgestellt, dass die OTA-file nicht mehr jedes Mal geladen wird, wenn man die Detailseite einer Node (neu) aufruft. Hat zwar den "Nachteil", dass man das Einlesen der file ggf. forcieren muss (via "set <IO> connect"), aber dafür gibt es jetzt einen eindeutigen Hinweis, dass die File ggf. nicht (richtig) gesetzt ist.
Weiter war da etwas "C-style-loop"-Coding drin, das ich bei der Gelegenheit dann auch durch die Perl-Variante ersetzten würde, wenn es jemand erfolgreich getestet hat ::) .

Generell weiß ich immer noch nicht, ob die Parallelisierung zu MYSController eine gute Idee war, oder ob man das nicht dorch irgendwann auf den "üblichen FHEM-Standard" ändern sollte, dass man halt eine fw-file angibt....

uwetaz:
Ich habe die Module mal hergenommen und probiert.

Muss ich eigentlich immer FHEM neu starten nach dem Kopieren der Files? Ich hab es jedenfalls gemacht.

Ergebnis
Ein Problem scheint weg zu sein. Von dem hatte ich noch nicht geschrieben weil ich mir es noch anschauen wollte: Der aktualisierte Node lief nicht mehr richtig an weil FHEM im kurz nach dem Anmelden des Nodes mit der Sketch Version immer gleich wieder einen Reset verpasst zu haben scheint. Der Sketch ist drin und läuft auch an wenn ich den GW einfach abschalte. So richtig verstanden habe ich es nicht. Allerdings müssten wir erst mal mit der neuen Version soweit kommen dass ich ein update einspielen kann.
Denn:
Im Node Device geht set Device fwType nicht mehr. Es ist zwar ein Drop down da aber es steht nur ein fester Eintrag, nämlich eine 5, drin. Die gibt es in meinem csv-File nicht.
Das File sieht aktuell so aus
Type,Name,Version,File,Comments
10,Blink,1,Blink.ino.hex,blinking example
20,uwe,1,2021_04_25_mysensors_nrf_temperature.ino.hex,kommentar
100,uwe,1,2021_04_25_mysensors_nrf_temperature.ino_100ms.hex,kommentar
1000,uwe,1,2021_04_25_mysensors_nrf_temperature.ino_1000ms.hex,kommentar

Wenn ich den Button set trotzdem drücke kommt:
fwType must be numeric, but got >5<.
Eine 5 ist doch numerisch...

Das hat auch das "set MySensorsGw03 connect" nicht behoben.

Ich probier gern noch was aus. Ich werde auch noch mit dualoptiboot was machen da ich auch RFM69HW im Einsatz habe.

Also ich persönlich fände die Angabe eines fw-files etwas intuitiver. Ich sehe in der csv-Datei nicht wirklich einen Vorteil außer dass man sie 1:1 nehmen kann wenn man OTA mal via MYSCONTROLLER am Laufen hatte. Es sei denn in dem drop down wäre zumindest noch das eigentliche File was angezogen wird sichtbar. In MYSCONTROLLER ist in dem Menü wo ich die FW zuweise wenigstens neben der fwType der Kommentar der entsprechenden Zeile sichtbar. Aber ohne Kenntnis was in dem csv-File steht eine Nummer einstellen erscheint mir noch nicht als optimale Lösung.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln