Jeelik Modul zur Einbindung von La Crosse!

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

Vorheriges Thema - Nächstes Thema

HCS

Zitat von: rolandm am 26 Februar 2014, 20:04:41
Soll der Dostmann 30.31.56.WD nun funktionieren?

Ich bekomme hier nur CRC Fehler.

Nimm mal den Sketch aus Antwort #349 und setze die data rate auf 9.579 kbps
Die Zeile
int DATA_RATE = DATA_RATE_17;
änern in
int DATA_RATE = DATA_RATE_9;

Eventuell läuft Dein Sensor ja mit 9.579 kbps. Der User, der bestätigt hat, dass dieser Sensor funktioniert, hat leider keine data rate angegeben, mit der er läuft.

HCS

Zitat von: Henno am 26 Februar 2014, 19:26:07
ein
set JeeLink LaCrossePairForSec 50 ignore_battery
bringt mir im eventmonitor

2014-02-26 19:19:46 JeeLink JeeLink LaCrossePairForSec 50 ignore_battery
aber sonst nichts.
Solange der JeeLink nicht etwas, das mit OK 9 beginnt, liefert, brauchst Du in fhem nicht weiter probieren.

Nach dem, was Du vom JeeLink bekommst, würde ich mal behaupten, dass er funktioniert.

Kannst ja auch mal mit 9.579 kbps probieren (siehe vorhergehenden Beitrag)

Ich stelle als Bord übrigens nicht Uno sondern "Arduino Mini ATmega328" ein und verwende Version 1.0.5-r2

ulli

#407
Ich habe mal eine senden Routine in die Firmware integriert. Meine Wetterstation reagiert aber nicht darauf. Habe einiger Versuche gestartet, funktioniert aber nicht. Ich vermute das liegt irgendwie an meiner Wetterstation.
Versucht man die Firmware.
Einfach drauf flashen und dann das Kommando
F01... absetzen. (... sind die zu sendenden 4 Datenbytes)
--> Es wird dann alle 4 Sekunden das Kommando in einer Endlosschleife gesendet.

z.B. F019224716A

Sagt mir Bescheid ob es bei euch geht!

rolandm

Zitat von: HCS am 26 Februar 2014, 20:29:24
Nimm mal den Sketch aus Antwort #349 und setze die data rate auf 9.579 kbps
Die Zeile
int DATA_RATE = DATA_RATE_17;
änern in
int DATA_RATE = DATA_RATE_9;

Eventuell läuft Dein Sensor ja mit 9.579 kbps. Der User, der bestätigt hat, dass dieser Sensor funktioniert, hat leider keine data rate angegeben, mit der er läuft.

Ja, DATA_RATE_9 bzw. TOGGLE hab ich ja schon. Der Dostmann geht aber nicht. Vielleicht noch eine andere Datenrate.

Henno

Mit dem Arduino Mini ATmega328 hat es jetzt bei mir auch geklappt.


*** LaCrosse weather station wireless receiver for IT+ sensors ***
Radio setup complete. Starting to receive messages
Start receiving
End receiving, HEX raw data: FF EF 2D 5F CD
Msg does not start with 9, it's: F
Start receiving


allerdings Sendet wohl der TX29 nichts

HCS

Zitat von: Henno am 27 Februar 2014, 09:12:49
allerdings Sendet wohl der TX29 nichts
Poste mal einige mehr "HEX raw data" Zeilen, aus einer kann man recht wenig schließen.

Sind die Aussendungen von Deinem Sensor (also nicht mehr da, wenn Du die Batterie raus nimmst)?

Was für ein Sketch ist das denn? Die Meldung "Msg does not start with 9 ..." kommt in meinem so nicht vor.

JoeALLb

Zitat von: ulli am 26 Februar 2014, 20:49:32
Ich habe mal eine senden Routine in die Firmware
z.B. F019224716A

Sagt mir Bescheid ob es bei euch geht!
Kanns erst am Wochenende versuchen. Ist die ino Datei auch verfügbar, dann könnte ich mit den Werten spielen...


Gesendet von meinem Xperia Pro mit Tapatalk

FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Billy

@ulli
ZitatIch habe mal eine senden Routine in die Firmware integriert. Meine Wetterstation reagiert aber nicht darauf. Habe einiger Versuche gestartet, funktioniert aber nicht. Ich vermute das liegt irgendwie an meiner Wetterstation.
Geht bei mir auch nicht. :-\

Hast du das new battery flag in deine Senderoutine integriert?

Gruss Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

HCS

Ich habe einige Erweiterungen / Änderungen an dem Sketch vorgenommen.

Activity LED
Die Activity LED kann nun mit dem Befehl 0a aus- und mit 1a wieder eingeschaltet werden

Data rate toggle
Der Wechsel der data rate funktioniert nun so:
0t  deaktiviert den toggle
<n>t  aktiviert den toggle. Dabei ist <n> die Zeit in Sekunden, wie lange mit einer data rate empfangen wird.
Beispiel: 20t bedeutet: 20s mit 17.241 kbps empfangen, dann 20s mit 9.579 kbps empfangen, dann 20s mit 17.241 kbps empfangen, usw.

Ich habe drei TX29 (ID:16, 48, 56), die mit 17.241 kbps und zwei TX35 (ID: 124, 156), die mit 9.579 kbps arbeiten
Man kann schön die Blöcke erkennen, wann die data rate wechselt.
OK 9 16 1 4 128 63
OK 9 48 1 4 137 61
OK 9 56 1 4 28 73
OK 9 16 1 4 128 63
OK 9 48 1 4 137 61
OK 9 56 1 4 28 73
OK 9 16 1 4 128 63
OK 9 124 1 4 193 47
OK 9 156 1 4 159 58
OK 9 124 1 4 193 46
OK 9 124 1 4 194 46
OK 9 156 1 4 159 58
OK 9 124 1 4 193 46
OK 9 48 1 4 136 61
OK 9 16 1 4 128 63
OK 9 56 1 4 27 73
OK 9 48 1 4 137 61
OK 9 56 1 4 28 73
OK 9 48 1 4 137 61
OK 9 16 1 4 128 63
OK 9 56 1 4 27 73
OK 9 48 1 4 136 61
OK 9 56 1 4 27 73
OK 9 16 1 4 128 63
OK 9 48 1 4 137 61
OK 9 156 1 4 159 58
OK 9 124 1 4 193 46
OK 9 124 1 4 194 46
OK 9 156 1 4 159 58
OK 9 124 1 4 193 46

usw. usw.


Debug-Mode
Aus quiet mode wurde debug. Irgendwie fand ich es dann doch seltsam, dass das umgekehrt wie der debug mode im Sketch war.
1d schaltet DEBUG ein, 0d schaltet es aus

Änderung der Implementierung für den Datenempfang
Habe ich so geändert, dass die loop kontinuierlich läuft. Bisher war es so, dass sie in der receive festsaß, bis etwas empfangen wurde.
Das war für das Empfangen von Kommandos auf der Seriellen nicht ganz ideal (ist immer nur dann passiert, wenn mal etwas empfangen wurde) und
für das Senden von Daten auch eher unpraktisch (man will ja nicht nur dann was gesendet  bekommen, wenn man gerade etwas
Empfangen hat).

Neues command zum Senden von Daten (Rumpf-Implementierung)
Mit b1,b2,b3,b4s können vier Byte (Angabe dezimal), die gesendet werden sollen, übergeben werden.
Das fünfte CRC-Byte wird im Sketch berechnet.
Beispiel: 148,5,82,63s
Das Senden der Daten fehlt momentan noch.
Eventuell könnten wir hier die Senderoutine von ulli dann einbauen, wenn sie läuft. Mit der Senderei habe ich das Problem, dass ich keine
Wetter-Station habe, mit der ich es testen könnte.  Da macht implementieren wenig Spaß.

Alle Parameter können natürlich auch im Sketch gesetzt werden
// --- Configuration ---------------------------------------------------------
bool DEBUG               = 0;             // set to 1 to see debug messages
bool ENABLE_ACTIVITY_LED = 1;             // set to 0 if the blue LED bothers
int  DATA_RATE           = DATA_RATE_17;  // use one of the data rates defined above
int  TOGGLE_DATA_RATE    = 0;             // 0=no toggle, else interval in seconds


Anbei die Version 10.0c

HCS

Erweiterungen / Änderungen / Problem
         
Senden
Ich habe Senden implementiert. Die Daten, die gesendet werden, werden in FHEM korrekt empfangen und verarbeitet.
Dann sollte es eigentlich auch mit einer Wetterstation gehen. Kann das mal jemand, der eine hat, testen?

Senden kann man, wie im vorherigen Beitrag schon beschrieben, mit b1,b2,b3,b4s
Die Datenbytes muss man selbst berechnen. Der Aufbau das Daten frame ist im Sketch beschrieben.
Das fünfte Byte (CRC) wird im Sketch berechnet und wird nicht angegeben.
Beispiele (alle Werte Dezimal):
149,38,34,33s: ID=20, 22.2 °C, 33% Feuchte, NewBattaryFlag gesetzt
149,6,34,33s:  ID=20, 22.2 °C, 33% Feuchte, NewBattaryFlag NICHT gesetzt

158,37,35,45s: ID=56, 12.3 °C, 45% Feuchte, NewBattaryFlag gesetzt
158,5,35,45s:  ID=56, 12.3 °C, 45% Feuchte, NewBattaryFlag NICHT gesetzt


Zusätzlich gibt es zum einfacheren Testen das command <n>x
Dieses sendet den angegebenen Wert mit der ID 20 als Temperatur und Feuchte.
Beispiele(alle Werte Dezimal):
30x: Sende 30°C und 30% mit Sensor ID 20
55x: Sende 55°C und 55% mit Sensor ID 20


Neues Command <n>x
Für Tests gedacht, aktuell siehe oben

RECEIVER_ENABLED
Wenn man nie etwas ampfangen will, kann man im Abschnitt "Configuration" RECEIVER_ENABLED=0 setzen


Problem
Ich glaube, dass die Berechnung der empfangenen ID des Sensors im Sketch flasch ist.
Habe mich beim Testen der Senderoutinen gewundert, warum ich auf dem FHEM-System Sensor-IDs bekomme, die ich nicht sende.

msg->id = 0;
msg->id |= (data[0] & 0xF) << 2;
aktuell:       msg->id |= (data[1] & 0xC0);
meine Meinung: msg->id |= (data[1] & 0xC0) >> 6;


Kann da mal jemand drauf schauen, ob ich richtig liege?
Dann stellt sich die Frage, was man tut. Wenn wir es korrigieren, dann bekommen einige Anwender für einige Sensoren neue IDs und müssen das in der fhem.cfg anpassen.
Wenn wir es nicht korrigieren, dann ist es falsch und verwirrend.
Vorschläge?

Anbei die Version 10.0d

JoeALLb

#415
Erfolg, funktioniert!!!!
Cool ;-)
Hab die Wetterstation 35.5019.IT versucht.... hat direkt die Temperatur angezeigt!!

Nachtrag:
Seit dem neuen Sketch kann ich auch den Sensor: 30.3156.WD (V35) empfangen...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

HCS

Zitat von: JoeALLb am 09 März 2014, 16:10:25
Erfolg, funktioniert!!!!
Cool ;-)
Hab die Wetterstation 35.5019.IT versucht.... hat direkt die Temperatur angezeigt!!
Na denn, dann können wir diesen Weg weiterverfolgen.


Zitat von: JoeALLb am 09 März 2014, 16:10:25
Seit dem neuen Sketch kann ich auch den Sensor: 30.3156.WD (V35) empfangen...
Seltsam. Habe nur eine Sache im Empfangsteil geändert, nämlich den FIFO zu leeren, bevor angefangen wird zu empfangen.
Warum das dazu führt, dass der 30.3156.WD nun funktioniert, ist mir unklar. Sicher, dass er mit der Version 10.0c nicht auch schon ging?

justme1968

soll das zusammenbauen der nachricht lieber in den sketch oder ins fhem modul?

braucht man ein send kommando für beide datenraten?

reicht auf fhem seite eine einfaches send kommando oder ist ein pseudo device sinnvoll das man z.b. an einen temperatur und eine. feuchtigkeitssensor hängen kann und das bei werteänderungen automatisch sendet?

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

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

Billy

Ich hätte erwartet dass es ins FHEM Modul kommt und man dann Werte anderer FHEM Devices über
IT+ Anzeigeeinheit zur Anzeige bringen kann.

Z.B Temperatur eines Puffers oder Wassertasche (1-Wire) kann im Wohnzimmer angezeigt werden.

Gruss Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

JoeALLb

#419
Nicht sicher,  hatte mit 10c nicht viel gespielt...

Was ich in fhem noch nicht sehe ist die Version der Firmware.  Muss da Andre nochmal ran?
Korrektur: Geht doch! nach einem get <> devices
Wird es dann auch möglich sein,  mehrere Sensoren zu "imitieren"?  Meine Wetterstation kann 3 Sensoren anzeigen.

Wenn eine Wetterstation mit einem Sensor der ID 70 gefahren wurde,  sollte ich doch einfach diese ID mitsingen können und deneigentlichen Sensor deaktivieren können,  und der Wetterstation sollte dies egal sein,  oder?  (vorausgesetzt,  die ID Berechnung stimmt,  wie vorhin angezweifelt wurde)

Gesendet von meinem Xperia Pro mit Tapatalk

FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270