Forum

Bitte oder Registrieren, um Beiträge und Themen zu erstellen.

Githubversion: Anregungen, Bugs

Hi,

hier könnten wir Themen zur Github-Version unterbringen.

Mein erstes:

Das device-topic scheint bei "save" nicht übernommen zu werden.  Wenn man mehrere Dongles im Einsatz hat, wird per mqtt nur einer davon bedient. Sollten nicht alle mit dem Topic bedient werden? Ok, das wäre eigentlich ein Mosquittoproblem, aber seltsam ist das.

 

 

Hallo Oliver,

daß das "devicetopic" nicht gespeichert wird ist (noch) richtig. Du hast meine aktuelle Baustelle entdeckt, das "devicetopic" existiert dort nur als Eingabefeld im Web-Gui, mehr ist in der veröffentlichten Version noch nicht dahinter. Da ich für neue Elemente in der Config eine Versionierung der Config-Daten im EEPROM einführen will brauch ich noch 1-2 Tage bis das alles fertig ist. Bitte ein kleines bisschen Geduld.

Deine Beobachtung "Wenn man mehrere Dongles im Einsatz hat, wird per mqtt nur einer davon bedient." ist m.E. nicht richtig, sondern es werden MQTT-Kommandos, die z.B. mein "Home Assistant" sendet, von allen angemeldeten Dongles empfangen und umgesetzt. Und dieses devicetopic ist nun genau dazu da um die verschiedenen Dongles unterscheiden zu können.

Besonders lästig aufgefallen ist es mir mit der "LWT" Message - denn "Home Assistant" horcht auf die "LWT"->Offline Meldung die der MQTT Server verschickt wenn dann einer von zwei Dongles abgeschaltet wird... also im klartext: das Testgerät abgeschaltet, geht produktiv auch nix mehr. Das fand ich Mist.

Davon abgesehen werde ich wohl 2 Dongles im Haus aufstellen, denn das Empfangen der Nachrichten der Fernbedienungen funktioniert durch ein paar Wände hinweg sehr viel schlechter als die senden von Nachrichten.

 

Ansonsten: danke daß Du mir das Gefühl gibst es interessiert sich jemand für meinen "Output".

Bye

Martin

 

Zitat von madmartin am 31. Mai 2018, 8:54 Uhr

Ansonsten: danke daß Du mir das Gefühl gibst es interessiert sich jemand für meinen "Output".

Bye

Martin

 

Klar interessiere ich mich dafür! Würde mich ja gerne mehr einbringen aber bin nicht so der großartige Programmierer.  Hab immerhin den Wiki-Eintrag zu den Serials gemacht, hoffe der ist halbwegs richtig.

Das mit dem LWT ist mir auch schon aufgefallen, schaltet man einen ab reisst man alle anderen mit.

 

Hallo!

Habe gerade die neuste Version ausprobiert. Das klappt jetzt mit dem Topic wechseln. Irgendwas bleibt aber beim Flashen auf der Strecke, alle Einstellungen blieben zwar drin, dennoch musste ich die Seriennummern neu generieren und meinen Testrollo neu anlernen. Wurde beim flashen was überschrieben oder beim speichern des neuen Topics? Ich hab nur auf "save" gedrückt.

 

Zitat von Oliver am 2. Juni 2018, 15:36 Uhr

Hallo!

Habe gerade die neuste Version ausprobiert. Das klappt jetzt mit dem Topic wechseln. Irgendwas bleibt aber beim Flashen auf der Strecke, alle Einstellungen blieben zwar drin, dennoch musste ich die Seriennummern neu generieren und meinen Testrollo neu anlernen. Wurde beim flashen was überschrieben oder beim speichern des neuen Topics? Ich hab nur auf "save" gedrückt.

 

Hi Oliver,

das war bei mir bisher immer der Fall, bei jeden Update. Die Seriennummern mussten immer nochmal neu generiert werden, das anlernen muss ich immer nur an einem Rolladen machen, dann gehen die anderen auch. Das liegt denke ich an dem Zählerstand, der wird bei jeden gesendeten Befehl hochgezählt und den bekommt auch jeder Rolladen mit, beim nächsten Befehl darf der Zählerstand nur geringfügig differieren ansonsten wird der Befehl nicht angenommen.

Wenn du jetzt also schon 20x hoch und runter gefahren hast und dann die FW neu aufspielst ist die Differenz zu groß (neue FW startet ja wieder bei 1) und das ganze geht nicht mehr.

Hoffe ich habe das so richtig erklärt, ich jedenfalls mein Stand der Dinge. Zudem glaube ich nicht das die generierten Seriennummern und der Zählerstand ins EEPROM gespeichert werden, wäre aber auch eine gute Idee falls machbar.

 

Hallo Ihr zwei,

also mir das das mit dem Seriennummern neu machen unbekannt nach dem Updaten. Ich habe extra mit mehreren ESPs experimentiert, das den (pseudo)-EEPROM Inhalt gespeichert und wieder zurück gespielt um Updates zu simulieren. Auch eine Doku hab ich dazu angefertigt.  https://github.com/madmartin/Jarolift_MQTT/blob/master/doc/config-data-layout.md

Da steht übrigens drin wie der EEPROM-Inhalt in eine Datei geschrieben werden kann und wieder zurück in den Flash.

Das Pseudo bezieht sich darauf daß die ESPs kein echtes EEPROM haben, nur den Flash Programmspeicher. Daher gibt es eine Library die den EEPROM emuliert, gespeichert wird es hinter dem SPIFFS bereich.

Beim einspielen von neuen Flash-Inhalten (sowohl Programm als auch SPIFFS) wird der EEPROM-Bereich normalerweise nicht überschrieben.

Die Start-Seriennummer sowie die 16 Seriennummern für die Kanäle werden - ebenso wie der "devicecounter" alle abgespeichert. Der Device-Counter wird nur mit "0" initialisiert wenn man neue Seriennummern generiert - und dann muß man auf jeden Fall alle Geräte neu anlernen, das erscheint mir logisch.

Bei jedem Funkbefehl wird übrigens auch der (um 1 erhöhte) "devicecounter" neu ins EEPROM geschrieben, daher mache ich mir langfristig sorge über die übliche flash-lebensdauer-Problematik. Aber das nur am Rande.

Also bitte bedenken: Seriennummern neu gerieren würde ich nur machen wenn ich mir nicht anders zu helfen weiß. Vorher mal den EEPROM in eine Datei schreiben und als Hexdump anschauen, am besten vor und nach dem Update. Dazu hab ich auch das Dokument mit den Offsets gemacht, weil ich das auch selbst gebraucht hab.

Noch etwas was bei mir Probleme bereitet hat: mit zwei ESPs rumexperimentieren, wo ich dieselben Seriennummern drin hatte. Die "devicecounter" laufen beim rumspielen schnell auseinander. Irgendwann horchen die Empfänger dann nur noch auf einen der beiden ESPs.

 

 

 

Naja, nur einen anlernen kann ich nicht probieren da ich meinen Test-Wemos nur auf einen Rollo dressiert habe, sonst dreht die Familie durch.

Seriennnummern neu generieren war vielleicht etwas zu voreilig, aber in der Experimentalphase ist eben alles erlaubt 🙂

Ich habe mir für meine Testboards eigene Seriennummern generiert. Diese Webseite hilft dabei. Einfach eine beliebige Serial eingeben, dann beim Hexwert die beiden letzten Stellen durch 0 (Null) ersetzen und die angepasste Serial übernehmen.

Zum Thema Flashwornout: Vielleicht kann man alle x Schreibvorgänge einen anderen Speicherbereich verwenden, Platz müssten wir ja erstmal genug haben. Alle x Schreibvorgänge einen Block weiter oder sowas. Oder wir erweitern die Hardware auf ein RTC-Modul mit etwas Speicher, aber das halte ich für übertrieben. Oder wir lassen es erstmal so und überlegen in ein paar Jahren bei den ersten Ausfällen was man tun kann.

 

Hallo und guten Morgen,

muss zu meiner Schande gestehen das ich gestern etwas voreilig war mit meiner Aussage das ich jedes Mal die Seriennummern neu generieren muss und einen Rollladen neu anlernen.

Das war die Regel wie ich noch die ersten Versionen von Steffen benutzt hatte, da war das ganze ja noch nicht im pseudo EEPROM gespeichert. Habe das dann irgendwie verinnerlicht und seit dem immer gemacht. Habe gestern aber mal ein Update gemacht und wie zu erwarten (Martin hat es ja schön beschrieben) funktioniert es ohne Probleme weiterhin.

Was man vielleicht noch mit einbauen könnte wäre das man den Zählerstand angezeigt bekommt (im Web und als Topic) und diesen auch wieder eingeben kann als Startwert, dann könnte man bei Hardwaredefekt oder Hardwarewechsel den Zählerstand voreinstellen und kann sich so das anlernen sparen.

... funktioniert es ohne Probleme weiterhin.

Ja so hören wir das gerne.

... den Zählerstand angezeigt bekommt (im Web und als Topic) und diesen auch wieder eingeben kann

Das macht Sinn. Werd ich demnächst in Angriff nehmen. Ich selbst benutze bisher ja nur Geräte zum Einbau  in die Wanddosen, da ist das Anlernen ja kein Problem. So richtig blöd ist so eine Anlern-Runde bei Funk-Motoren, oder?

Ein Hardwaredefekt kommt ja immer unerwartet und plötzlich... hab mir erst gestern ein NodeMCU zerschossen, die Drahtantenne vom CC1101 Board hat nur kurz einige Pins vom NodeMCU berührt und PUFF...

Jetzt hab ich der Antenne einen Plastik-Überzieher verpasst.

Hi Martin,

das Anlernen der reinen Funkmotoren geht mit einer vorhandenen, bereits angelernten Fernbedienung auch ganz easy. http://www.jarolift.de/files/jarolift/manuals/motoren/Jarolift_TDEF_Rohrmotoren.pdf