Jeelik Modul zur Einbindung von La Crosse!

Begonnen von Billy, 16 September 2013, 15:12:15

Vorheriges Thema - Nächstes Thema

HCS

Flashen des JeeLink von FHEM aus

Da es mir lästig wurde, immer in den Keller zum Raspi zu laufen, um den JeeLink zu flashen, habe ich eine flash Funktion in das 36_JeeLink.pm Modul eingebaut.

Voraussetzung: avrdude ist auf dem Raspi installiert. Falls nicht, dann mit "sudo apt-get install avrdude" installieren.

Das JeeLink modul hat ein neues Attribut "hexFile". Dieses kann man auf ein beliebiges .hex File setzen. In meinem Fall habe ich im FHEM Verzeichnis ein Verzeichnis hexfiles angelegt, in dem die LaCrosseITPlusReader10.hex liegt. Das Verzeichnis kann aber auch an jeder bleibigen anderen Stelle im Dateisystem liegen. Der fhem user muss dort aber Leserechte haben.

Beispiel: attr myJeeLink hexFile ./hexfiles/LaCrosseITPlusReader10.hex

Flashen:
set myJeeLink flash
verwendet das File aus dem Attribut hexFile

set myJeeLink flash /home/pi/Test.hex
verwendet das angegebene File

Nach dem Flash-Vorgang wird ein Protokoll angezeigt. Beispiel:
flashing JeeLink myJeeLink
hex file: ./hexfiles/LaCrosseITPlusReader10.hex
port: /dev/ttyUSB0
log file: ./log/JeeLinkFlash.log
myJeeLink closed
command: avrdude -p atmega328P -c arduino -P /dev/ttyUSB0 -D -U flash:w:./hexfiles/LaCrosseITPlusReader10.hex 2>./log/JeeLinkFlash.log

--- AVRDUDE ---------------------------------------------------------------------------------

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f
avrdude: reading input file "./hexfiles/LaCrosseITPlusReader10.hex"
avrdude: input file ./hexfiles/LaCrosseITPlusReader10.hex auto detected as Intel Hex
avrdude: writing flash (16652 bytes):

Writing | ################################################## | 100% 2.53s

avrdude: 16652 bytes of flash written
avrdude: verifying flash memory against ./hexfiles/LaCrosseITPlusReader10.hex:
avrdude: load data flash data from input file ./hexfiles/LaCrosseITPlusReader10.hex:
avrdude: input file ./hexfiles/LaCrosseITPlusReader10.hex auto detected as Intel Hex
avrdude: input file ./hexfiles/LaCrosseITPlusReader10.hex contains 16652 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.92s

avrdude: verifying ...
avrdude: 16652 bytes of flash verified

avrdude done.  Thank you.

--- AVRDUDE ---------------------------------------------------------------------------------

myJeeLink opened


@justme1968: könntest Du das in den trunk übernehmen?
Dann würde ich bei zukünftigen Versionen vom LaCrosseITPlusReader10 auch das hex File mitliefern.

Ich habe meine Änderungen in
### HCS ###
...
### /HCS ###
geklammert.

justme1968

die idee ist klasse. vielleicht können wir dir stelle für die firmware noch irgendwie standardisieren. das betrifft nicht nur das jeelink modul. cul und eventuell homematic für ota updates sind auch betroffen. für die panstamps möchte ich auch ein ota firmware update ermöglichen.

gruss
andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

HCS

Ja, ein standardisierter Ablageort wäre auch praktisch. Momentan geht das hexFile Attribut und die Angabe bei flash. Reihenfolge der Berücksichtigung könnte sein:

  • Angabe bei flash
  • hexFile Attribut
  • Standard Ort/Dateiname

Ich würde noch gerne am Ende des flashens (anstatt dem JeeLink_SimpleWrite($hash, "v");) ein rereadcfg absetzten. Wie macht man das denn im Modul?

justme1968

die reihenfolge finde ich auch gut. ich hab mal hier: http://forum.fhem.de/index.php/topic,24190.0.html einen thread dazu aufgemacht. mal sehen was die anderen sagen.


ein rereadcfg automatisch anzustossen ist keine gute idee. abgesehen davon das es sowieso kein guter weg ist etwas zu initialisieren weil hierbei fhem komplett angehalten und neu gestartet wird gehen hierbei alle nicht gespeicherten änderungen verloren.

was genau möchtet du denn damit bewirken? ein einfaches neu öffnen des device sollte völlig ausreichen. also genau das was beim abziehen und wieder anstecken auch passieren würde.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

HCS

#664
Meine fhem.cfg sieht so aus:
define myJeeLink JeeLink /dev/ttyUSB0@57600
attr myJeeLink Clients :PCA301:EC3000:RoomNode:LaCrosse:ETH200comfort:CUL_IR:HX2272:FS20:AliRF:Level:EMT7110
attr myJeeLink group Hardware
attr myJeeLink hexFile ./hexfiles/LaCrosseITPlusReader10.hex
attr myJeeLink room System
define JLA1 at +00:00:05 set myJeeLink raw 30t
define JLA2 at +00:00:06 set myJeeLink raw v


Ich muss dem JeeLink in den Toggle mode bringen und evtl. noch einige weitere kommandos senden.

Bedeutet: der "raw 30t"  und weitere müssen irgend wo hin (konfigurierbar), wo er beim Start von FHEM, bei einen rereadcfg und nach dem Flashen ausgeführt wird.

Nachtrag: und wie mir gerade klar wurde, auch beim neu anstecken.

justme1968

ich wollte die kommandos die bei device öffnen gesendet werden per attribut konfigurierbar machen. idee: mit / oder leezreichen retrennte sequenz von init strings. in deinem fall wäre es also einattr myJeeLink initCommands 30t v


das handling von state und STATE wollte ich eigentlich auch noch reparieren. dann kann man die initialisierung in einem notify machen.


für die 'standard' module wie z.b. LaCrosse würde ich einen default der für alle gelten kann aber in JeeLink_Parse unterbringen. da werden auch die anderen sketeches nach einem testet initialisiert. der teil für LaCrosseITPlusReader macht noch nichts.


wenn ich die nächste version einchecke ist auf jeden fall schon 1. oder 2. dabei. wenn du zeit und lust hat kannst du gerne schon etwas davon einbauen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

HCS

Zitat von: justme1968 am 01 Juni 2014, 19:23:35
attr myJeeLink initCommands 30t v

Das ist genau das, was ich brauche.
Mit Leerzeichen getrennt sollte gehen, zumindest im LaCrosseITPlusReader10 Sketch gibt es keine Kommandos, die Leerzeichen enthalten müssen.
Das könnte ich nächste Woche mal versuchen einzubauen.

In welche Version von 36_JeeLink.pm denn? Ich glaube den flash habe ich auch nicht in die aktuellste eingebaut.

Den Rest überlasse ich lieber Dir.

justme1968

wenn du das mit dem attribut versuchen magst am besten mit der aktuell eingecheckten verstion.

wenn du den patch zum flashen auch da ein bauen kannst wäre es für mich einfacher es dann einzuchecken.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

HCS

Und noch eine off-topic Frage: wie kann man denn in diesem Forum so auf einen Thread verlinken, dass man immer auf dem aktuell letzten Beitrag landet?

HCS

Zitat von: justme1968 am 01 Juni 2014, 19:44:31
wenn du das mit dem attribut versuchen magst am besten mit der aktuell eingecheckten verstion.

wenn du den patch zum flashen auch da ein bauen kannst wäre es für mich einfacher es dann einzuchecken.

OK, dann hole ich mir die aus dem Trunk und baue dort den flash und das initCommands Attribut ein.
Ich melde mich hier wieder, wenn es fertig ist.

Das hier http://forum.fhem.de/index.php/topic,17697.msg173348.html#msg173348
erledige ich dann auch noch.

justme1968

ich glaube man kann nur auf bestimmte beiträge verlinken. nicht auf den neuesten.

das wichtige ist das der sketch nach dem erst zumindest seine version meldet. das format sollte so sein:
Zitat[LaCrosseITPlusReader.10.1c]
daran wird dann die default init sequenz im fhem modul fest gemacht.

die hilfe an sich ist für fhem nicht wichtig. das ist eher um die sketches einheitlich zu haben.

ich glaube ich hatte da aber schon mal etwas eingebaut. kann natürlich sein das das inzwischen wieder verloren gegangen ist. aber wenn du eh dabei bist schau noch mal danach.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

pejonp

Zitat von: HCS am 30 Mai 2014, 05:12:47
Version 10.1a

Der Sensor kann 15 Hauscodes und 4 Adressen. Die ID des Sensors in FHEM ist Hauscode mal Adresse.
Da ich keinen WT440XH habe, konnte ich das leider nicht testen, pejonp: ich bitte um Rückmeldung.

HCS vielen Dank für die gute Arbeit und auch allen anderen die hier mitwirken.

Habe im WT440XH.cpp die CRC Prüfung angepaßt, da kein WT440XH erkannt wurde.
Und habe die Berechnung der Geräte-ID angepaßt.
frame->ID = (byte)(houseCode * deviceCode);
bei houseCode = 1 und deviceCode = 2 --> ID = 2
bei houseCode = 2 und deviceCode = 1 --> ID = 2 , ist schlecht zu unterscheiden.
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

HCS

OK, werde es übernehmen und nächste Woche eine neue Version veröffentlichen.

pejonp

Zitat von: HCS am 31 Mai 2014, 17:59:01
EMT7110, LaCrosse-Sensoren (TX29DTH, TX35, ...) und LevelSender laufen zusammen auf einem JeeLink

Bei den ursprünglichen Versionen konnte man auch noch den ETH200comfort (Heizungsthermostat) ansprechen oder verwechsele ich diese jetzt mit einen anderen Sketch.
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

HCS