Jeelik Modul zur Einbindung von La Crosse!

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

Vorheriges Thema - Nächstes Thema

Kalli01

Zitat von: HCS am 16 Juni 2015, 20:12:45
Gerade nochmal den code studiert und ausprobiert. resolution wirkt bei mir auf humidity und temperature, habe 2, 5 und 10 getestet. Sobald der nächste Wert reinkommt, hat auch die temperature den korrekt gerundeten Wert.

Welche Version hat Deine 36_LaCrosse.pm denn?
Eigentlich nicht.

Wie ich die Version her raus bekomme weiß ich nicht aber das sollte helfen:# $Id: 36_LaCrosse.pm 8689 2015-06-04 14:42:19Z hcs-svn $

Mein Problem habe ich auch gefunden. Ich habe immer nur nach dem state geschaut und mich gewundert das es nicht klappt.
Es liegt an corr1 den habe ich auf zB 0.3 gesetzt. Wenn ich das richtig verstanden habe wird erst gerundet und danach noch der offset dazu addiert.

Ich bin davon ausgegangen das erst ganz zum schluss gerundet wird.
Wie ist denn das mit corr1, doAverage und resolution gedacht?


HCS

Zitat von: justme1968 am 08 Juni 2015, 21:44:29
das einfachste ist vermutlich wenn du $hash->{AutoCreate} = { "LaCrosse.*" => { autocreateThreshold => "2:60" } };
oder ähnlich direkt in LaCrosse_Initialize einbaust.
Eingebaut und eingecheckt. Default ist 2:120 was bedeutet, dass der Sensor innerhalb zwei Minuten zwei mal empfangen werden muss, um ein autocreate auszulösen.

Das geänderte logging für "Unknown device xx, please define it" habe ich ebenfalls eingebaut und in der commandref beschrieben.

Kommt dann morgen mit dem Update.

HCS

Zitat von: Kalli01 am 16 Juni 2015, 21:29:25
Ich bin davon ausgegangen das erst ganz zum schluss gerundet wird.
Wie ist denn das mit corr1, doAverage und resolution gedacht?
Ich werde es wohl ändern, und die resolution erst am Schluss rechnen. Scheint mir sinnvoll.

Zitat von: justme1968 am 14 Juni 2015, 22:43:23
ich denke man sollte beides entfernen und statt dessen das neue event-aggregator attribut verwenden.
Nach dem, was ich aktuell über das neue event-aggregator attribut weiß, denke ich, dass man damit doAverage erledigen könnte aber resolution nicht.
Zumindest nach der aktuellen Diskussion, die ich gelesen habe, erzeugt der ja noch mehr Nachkommastellen.

aj

#1278
Zitat von: HCS am 16 Juni 2015, 19:55:38
Hi, vielen Dank für diese Information. Genau das hat mir noch gefehlt. Das werde ich so übernehmen.
Hast Du das LowBattery flag experimentell durch runterregeln der Spannung ermittelt?

Nein, das wäre der wissenschaftlich/technische Zugang - bei mir sind schlicht und ergreifend die Batterien leer geworden. Ich wollte zufällig ein eigenes altes Programm zur Datenerfassung ausprobieren und habe festgestellt dass es die Pakete der Wetterstation nicht mehr "verstanden" hat - da habe ich dann angefangen mir die Pakete genauer anzusehen und auch mit neuen vs. alten Batterien zu experimentieren. Bei der weiteren Suche, ob noch jemand dieses Problem hat(te), bin ich dann auf deinen Code gestossen.

Zitat von: HCS am 16 Juni 2015, 19:55:38
Dann bleibt noch ein Rätsel: ab und zu sendet der TX22 seltsame Pakete, bei denen das error flag gesetzt ist und eine Windgeschwindigkeit von 25.4 m/s übertragen wird. Zu diesen Zeitpunkten verschwindet auch die Wind-Geschwindigkeit und -Richtung auf der Basisstation. Hast Du das auch beobachtet und dazu evtl. auch eine Erklärung?
Ist mir noch nicht aufgefallen. Ich habe allerdings (noch) keine permanente Auswertung laufen.


HCS

OK, dann muss ich mal alle Pakete mit gesetztem error flag separat loggen und schauen, ob sich da ein System und Sinn erkennen lässt.

HCS

Habe die Reihenfolge der Berechnungen geändert.

Auf die eingegangenen Werte werden zuerst die Korrekturfaktoren (corr1 / corr2) gerechnet und filterThreshold wird geprüft
Wenn OK, wird average und dewpoint gerechnet
Am Schluss wird resolution gerechnet

Die internals bedeuten folgendes:
rawT/H: die tatsächlich vom Sensor gelieferten Werte
previousT/H: mit corr1/2 korrigiert und avarage gerechnet
   
Die readings (temperature und humidity) sind dann ggf. mit resoultion versehen.

Kommt morgen mit dem Update.



baybod

Hallo zusammen,

ich habe heute einen neuen jeelink erhalten und eingebunden. Dann einen Sensor angelernt mit lacrosse. Hat alles soweit funktioniert. Leider werden aber weder im Jeelink noch bei dem Sensor logilfes erzeigt. aus dem FHEM Log werde ich nicht richtig schlau. Welchen Befehl kann ich eingeben um das zu fixen ?
Danke für eure Hilfe!!!! und ein Auszug aus dem Logfile des FHEM:

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f
avrdude: reading input file "./FHEM/firmware/JeeLink_LaCrosse.hex"
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex auto detected as Intel Hex
avrdude: writing flash (25248 bytes):

Writing | ################################################## | 100% 3.67s

avrdude: 25248 bytes of flash written
avrdude: verifying flash memory against ./FHEM/firmware/JeeLink_LaCrosse.hex:
avrdude: load data flash data from input file ./FHEM/firmware/JeeLink_LaCrosse.hex:
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex auto detected as Intel Hex
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex contains 25248 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.82s

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

avrdude done.  Thank you.

2015.07.14 15:18:18 3: Opening myJeeLink device /dev/ttyUSB0
2015.07.14 15:18:18 3: Setting myJeeLink serial parameters to 57600,8,N,1
2015.07.14 15:18:18 3: myJeeLink device opened
2015.07.14 15:25:26 2: autocreate: define LaCrosse_32 LaCrosse 32
2015.07.14 15:25:26 3: LaCrosse_32: I/O device is myJeeLink
2015.07.14 15:25:26 2: autocreate: define FileLog_LaCrosse_32 FileLog ./log/LaCrosse_32-%Y.log
2015.07.14 15:25:26 1: define FileLog_LaCrosse_32 FileLog_LaCrosse_32 FileLog ./log/LaCrosse_32-%Y.log : wrong syntax: define <name> FileLog filename regexp [readonly]


noice



Zitat von: baybod am 14 Juli 2015, 19:54:59
Hallo zusammen,

ich habe heute einen neuen jeelink erhalten und eingebunden. Dann einen Sensor angelernt mit lacrosse. Hat alles soweit funktioniert. Leider werden aber weder im Jeelink noch bei dem Sensor logilfes erzeigt. aus dem FHEM Log werde ich nicht richtig schlau. Welchen Befehl kann ich eingeben um das zu fixen ?
Danke für eure Hilfe!!!! und ein Auszug aus dem Logfile des FHEM:

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f
avrdude: reading input file "./FHEM/firmware/JeeLink_LaCrosse.hex"
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex auto detected as Intel Hex
avrdude: writing flash (25248 bytes):

Writing | ################################################## | 100% 3.67s

avrdude: 25248 bytes of flash written
avrdude: verifying flash memory against ./FHEM/firmware/JeeLink_LaCrosse.hex:
avrdude: load data flash data from input file ./FHEM/firmware/JeeLink_LaCrosse.hex:
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex auto detected as Intel Hex
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex contains 25248 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.82s

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

avrdude done.  Thank you.

2015.07.14 15:18:18 3: Opening myJeeLink device /dev/ttyUSB0
2015.07.14 15:18:18 3: Setting myJeeLink serial parameters to 57600,8,N,1
2015.07.14 15:18:18 3: myJeeLink device opened
2015.07.14 15:25:26 2: autocreate: define LaCrosse_32 LaCrosse 32
2015.07.14 15:25:26 3: LaCrosse_32: I/O device is myJeeLink
2015.07.14 15:25:26 2: autocreate: define FileLog_LaCrosse_32 FileLog ./log/LaCrosse_32-%Y.log
2015.07.14 15:25:26 1: define FileLog_LaCrosse_32 FileLog_LaCrosse_32 FileLog ./log/LaCrosse_32-%Y.log : wrong syntax: define <name> FileLog filename regexp [readonly]

Probiere es mal so
define FileLog_LaCrosse_32 FileLog ./log/LaCrosse_32-%Y.log FileLog_LaCrosse_32


Mobil erstellt daher kurz gehalten

BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

baybod

Hallo,

danke dafür!!!! Jetzt wird ein LOG angelegt, aber leider wird es nicht mit Daten gefüllt, so dass es einfach leer ist. An was kann das liegen?

Danke für eure Hilfe!!!!!

lg
Baybod

Wzut

define FileLog_LaCrosse_32 FileLog ./log/LaCrosse_32-%Y.log FileLog_LaCrosse_32
logt was  wohin ? das FileLog ins FileLog ?
ich würde da
define FileLog_LaCrosse_32 FileLog ./log/LaCrosse_32-%Y.log LaCrosse_32
benutzen :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

noice

#1285
Ist doch klasse .. hast ein Backup vom filelog. ..
Wutz hat recht .. mein fehler

Mobil erstellt daher kurz gehalten
BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

baybod

Hallo, danke euch, das war es !!!!

Habe zwar noch ein paar Themen mit der graphischen Darstellung, aber das ist ein anderes Thema. Tolle Hilfe von Euch!!!!

Gruss
Baybod

Hollo

Vielleicht hilft Dir das weiter; Definition eines LaCrosse-Sensors am JeeLink-Clone bei mir.
## Temperatursensor Aussen ##
define Sensor_02 LaCrosse 3B
attr Sensor_02 IODev myJeeLink
attr Sensor_02 alias Außensensor
attr Sensor_02 event-min-interval state:300,temperature:300,humidity:300,battery:3600
attr Sensor_02 group Wetter
attr Sensor_02 room Umwelt
define FileLog_Sensor_02 FileLog ./log/Sensor_02-%Y.log Sensor_02:T:.*
attr FileLog_Sensor_02 logtype temp4hum6:Temp/Hum,text
attr FileLog_Sensor_02 room LaCrosse
define SVG_FileLog_Sensor_02_1 SVG FileLog_Sensor_02:SVG_FileLog_Sensor_02_1:CURRENT
attr SVG_FileLog_Sensor_02_1 label "Außentemperatur  -  min: $data{min1}°C  max: $data{max1}°C  akt: $data{currval1}°C"
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

HCS

Ich habe gerade eine neue Version vom LaCrosse Modul eingecheckt.
filterThreshold hat nicht mehr funktioniert. Ist repariert und sollte (wenn SourceForge will) morgen mit dem Update kommen.

HCS

#1289
SuperJee

Vorab: alles was nun kommt ist optional, für "normale" JeeLinks/Clone ändert sich nichts.
Wer einen Clone gebastelt hat, kann diesen mit einer oder beiden der folgenden Optionen erweitern.

Option 1 (Dual RFM):
Es kann ein zweiter RFM12B oder RFM69CW angeschlossen werden. Somit können zwei data rates (z.B. 17241 für TX29DTH und 8842 für WS 1600) gleichzeitig empfangen werden. Das geht natürlich auch mit dem toggle mode, nur ist es bei der Wetterstation ärgerlich, wenn man 30 Sekunden lang nichts empfängt und dadurch die alles entscheidende Windböe verpasst.

Der zweite RFM wird parallel zum ersten angeschlossen (Antenne natürlich eine eigene), nur NSS (also der Chipselect) wird am Arduino an PB0 angeschlossen (siehe angehängte SuperJee-CL.png)

Der Sketch erkennt automatisch, ob der zweite RFM angeschlossen und ob es ein 12er oder 69er ist und verwendet ihn dann entsprechend.

Um den zweiten RFM zu konfigurieren, werden folgende Commands (die natürlich in InitCommands gesetzt werden können) verstanden:
R - DataRate
F - Frequenz
M - Toggle Mode
T - Toggle Time

Das entspricht den Commands wie bisher für den ersten RFM, nur dass es Großbuchstaben sind.


Option 2 (BMP180):
Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.
Desshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist.
Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe angehängte SuperJee-CL.png)
Wenn ein BMP180 erkann wurde, sendet der Sketch alle 10 Sekunden den Luftdruck und die Temperature an FHEM, so als ob es eine Wetterstation wäre.
Die Adresse dieses "Fake-Sensors" ist 00.

Da der BMP180 den absoluten Luftdruck liefert, es aber üblich ist, dass der Luftdruck auf NN bezogen angegeben wird, kann dem Sketch die Höhe über NN gesetzt werden. Dazu versteht er das Command "h" Beispiel: "set myJeeLink raw 220h" legt fest, dass sich der Sensor auf 220m befindet.
Der Sketch rechnet dann den Luftdruck auf NN bezogen um und er sollte dann mit der Anzeige der Wetterstation usw. übereinstimmen.
Wenn man mit der Höhe etwas "mogelt", kann man den Sensor damit auch "kalibrieren"

Weitere Infos dazu:
SuperJee-CL.png:
Schaltplan (nur die Erweiterungen)

myJeeLink.png:
Beispiel mit einem voll aufgerüsteten Clone. Zwei RFM69CW, einer läuft mit 8842 und empfängt exclusiv die WS 1600, der zweite toggelt alle 20 Sekunden zwischen 17241 und 9579 um die TX29 und TX35 zu empfangen.

NodeSensorsDefinition.png und NodeSensorsPlot.png:
Die Definition für den BMP180, ist ein ganz normales LaCrosse mit der Adresse 00 und ein Plot dazu

SuperJee-JNUSB.png:
Ein Beispiel, wie man das auf einem JeeNode-USB aufbauen kann (mit RFM69CW und BMP180)

SuperJee-JN1.png und SuperJee-JN2.png:
Ein Beispiel, wie man das auf einem JeeNode aufbauen kann (mit RFM12B und BMP085)

SuperJee-LR.png:
Beispiel Lochraster.

Beispiel initCommands:
0m 0t 2r 3M 0R 20T 868300f 220h 0a v
Erster RFM: kein toggle und 8842 kbps
Zweiter RFM: 20 Sekunden toggle zwischen 17241 und 9579 kbps
868300 MHz
Sensor über NN = 220 Meter
Activity LED aus

Zu beachten:
Das ist alles 3,3V. Wenn ihr auf einem 5V Arduino seid, dann Pegelanpassung usw. beachten.
Das funktioniert ab Sketch Version 10.1k aufwärts und mit einem aktuellen 36_LaCrosse.pm. Beides ist eingecheckt und kommt morgen mit dem Update.


Sonstiges:
In dieser Version ist auch die LowBattery Erkennung der WS 1600 korrekt implementiert. Danke nochmal an aj.

@Billy: bist Du noch der "Wiki-Man"?
falls ja, wäre das super im Wiki aufgehoben, sonst findet es bald keiner mehr hier im Giga-Thread.