LevelSender - Tankfüllstand mit JeeLink empfangen

Begonnen von HCS, 04 Mai 2014, 12:03:46

Vorheriges Thema - Nächstes Thema

Guenne24

Hallo Zusammen,

ich habe mir zwei Module zusammen gelötet. Bei beiden hatte ich aber ein Problem mit den Werten vom Ultraschall HC-SR04 Sensor. Temperatur und Spannung wurden korrekt dargestellt. Nach dem ich einen 100uF Kondensator parallel zur 5V-Versorgung des US-Sensor gelötet habe war alles ok.

Allerdings habe ich noch Probleme mit der Konfiguration im FHEM. Der JeeLink wird korrekt dargestellt, die Werte vom Levelsender werden empfangen. Es wird aber kein Level-Modul erstellt.

FHEM ist in der Version 5.6 installiert und der Jeelink mit LaCrosseITPlusReader.10.1j geflasht. Habe noch nicht soviel mit FHEM gemacht und weiß gerade nicht weiter..... :(

2015.06.23 09:19:37 3: Opening myJeeLink device /dev/ttyUSB0
2015.06.23 09:19:38 3: Setting myJeeLink serial parameters to 57600,8,N,1
2015.06.23 09:19:38 3: myJeeLink device opened
2015.06.23 09:19:40 3: Opening CUL_0 device /dev/ttyACM0
2015.06.23 09:19:40 3: Setting CUL_0 serial parameters to 9600,8,N,1
2015.06.23 09:19:40 3: CUL_0 device opened
2015.06.23 09:19:40 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
2015.06.23 09:19:41 1: Including ./log/fhem.save
2015.06.23 09:19:41 1: usb create starting
2015.06.23 09:19:43 3: Probing CUL device /dev/ttyAMA0
2015.06.23 09:19:43 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.06.23 09:19:43 3: Probing FRM device /dev/ttyAMA0
2015.06.23 09:20:18 1: usb create end
2015.06.23 09:20:18 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.06.23 09:20:18 0: Server started with 15 defined entities (version $Id: fhem.pl 8690 2015-06-04 16:47:20Z rudolfkoenig $, os linux, user fhem, pid 2034)
2015.06.23 09:20:20 3: myJeeLink: Unknown code , help me!
2015.06.23 09:20:20 3: myJeeLink: Unknown code OK LS 1 0 6 54 4 146 48, help me!
2015.06.23 09:20:20 3: myJeeLink: Unknown code OK LS 1 0 6 69 4 146 48, help me!
2015.06.23 09:20:24 3: myJeeLink: Unknown code OK LS 1 0 6 54 4 146 48, help me!



Clients           :PCA301:EC3000:RoomNode:LaCrosse:ETH200comfort:CUL_IR:HX2272:FS20:AliRF:Level:EMT7110
DEF              /dev/ttyUSB0@57600
DeviceName        /dev/ttyUSB0@57600
FD                10
NAME              myJeeLink
NR                20
PARTIAL
RAWMSG            OK LS 1 0 6 49 4 146 48
STATE             Initialized
TYPE              JeeLink
model             [LaCrosseITPlusReader.10.1j (RFM12B) @17241 kbps / 868300 kHz]
myJeeLink_MSGCNT  93
myJeeLink_TIME    2015-06-23 10:29:40




Vielleicht hat ja jemand noch einen Tipp?

Gruss
Guenne

HCS

Versuch mal
set myJeeLink LaCrossePairForSec 120 ignore_battery

Wzut

#62
Ich brauche mal einen Tipp bei der Fehlersuche der das RFM12 Modul betrifft.
Ich habe seit Tagen einen LevelSender Aufbau auf einem Steckbrett  Verbaut sind ein RFM12 (ohne B)  und ein nackter  Atmega 328p (mit 8MHz interen Takt bzw 16 MHz extern) Mit dem 16MHz Atmega läuft der LevelSender prima, allerdings sobald ich den anderen mit dem 8MHz internen Takt benutze empfange ich nichts mehr (In der seriellen Konsole habe ich allerdings meine aktuellen Debug Werte)
Mein erster Verdacht ging Richtung SPI will nicht so bei 8Mhz , daher habe ich es mit dem LaCrosseITPlusReader Sketch versucht -
der läuft sowohl mit dem 8 MHz als auch mit dem 16 MHz Aufbau ohne Probleme ...
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

HCS

Beim Überfliegen der entsprechenden Code-Teile ist mir jetzt nichts aufgefallen, warum das nicht gehen sollte.

Wenn Du die aktuelle Version vom LevelSender verwendest (also die mit der RFMxx.cpp) kannst Du mal am Ende von setup()
das hier einbauen: Serial.println(rfm.GetRadioName());

Wenn die Kommunikation mit dem RFM funktioniert, sollte da in Deinem Fall "RFM12B" ausgegeben werden.
Started
RFM12B


Dann wüssten wir erst mal, ob der Sketch mit dem RFM sprechen kann.

Warum willst Du das eigentlich mit 8 MHz betreiben?


Also so:
void setup() {
  LevelSenderLib::SetDebugMode(false);

  pinMode(LED_PIN, OUTPUT);
 
  // 5V Step-Up
  pinMode(POWER_5V_PIN, OUTPUT);
  digitalWrite(POWER_5V_PIN, LOW);

  pinMode(POWER_PULLUP_PIN, OUTPUT);
  digitalWrite(POWER_PULLUP_PIN, LOW);
 
  analogReference(INTERNAL);
 
  // Wait until everything is up and running
  delay(200);

  Serial.begin(57600);
  Serial.println("\n\nStarted");

  // Initialize the RFM12
  rfm.InitialzeLaCrosse();

  Serial.println(rfm.GetRadioName());

}

Wzut

Ok, werde ich heute Abend mal machen auch wenn ich es zuvor schon erfolglos mit der alten RFM12 lib versucht hatte.
Zitat von: HCS am 17 Juli 2015, 10:15:05
Warum willst Du das eigentlich mit 8 MHz betreiben?
Weil ich mir dadurch den Ext. Quarz und die beiden 22pF Kondensatoren später auf dem Lochraster spare :)
Bzw. inzwischen eigenlich nur noch weil ich es eben wissen möchte warum es nicht aus dem Stand geht.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kleinerDrache

Alternativ zum Betrieb mit einem externen Quartz gibt es auch noch die Möglichkeit den RFM12 zum tackten zu benutzen. Der RFM12 liefert einen 10MHZ takt an einem Anschluss.
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

Wzut

das war mir schon klar , nur wenn er mit 8Mhz nichts sendet , wie hoch sind dann die Chancen bei 10Mhz ?
Ich habe mich mit den 16Mhz und dem externem Quarz jetzt abgefunden, das kommt nun so aufs Lochraster und dann in die Regentonne.
Demnächst folgen auch ein paar Bilder, hier die Eckdaten des bisherigen Aufbaus :
ATmega328p + RFM12
Betrieb mit drei AA Zellen = 4,5V -> gleiche Versorgungsspannung für alle ICs, kein Level Shifter
Temperatur Erfassung mit DS1820 statt TMP36
Füllstand Messung mit Selbstbau kapazitivem Sensor statt Ultraschall
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kleinerDrache

#67
Der RFM rennt intern eh mit 10MHZ ist nur die Frage welchen hast du denn ?? Standart RFM12 (läuft mit 5V) oder RFM12b (läuft mit 3,3V) ?? Für welche Frequenz ist der RFM (immer etwas andere Init Sequenz). Die Frequenz für den Atmel sollte eigentlich fast nur den UART beeinflussen. In wie weit sich das auf die SPI Schnittstelle auswirkt an der der RFM ja hängt weiß ich gerade nicht. *sorry*

Edit: ok überlesen ist ein rfm12 also 5V , und wenns mit dem lacross sketch sowohl bei 16 als auch bei 8 MHZ läuft liegt der Fehler offensichtlich in deinem eigenen Sketch und nicht an der Hardware. (soll keine Kritik sein sondern nur ne logische Schlussfolgerung *gg*)
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

Bjoernar

Hallo,

wirklich tolles Projekt und sehr gut beschrieben. Nachbau sollte kein Problem sein.

Jedoch benötige ich keine Funkvariante da ich ohne Aufwand auch gleich ein Kabel zum RPi legen könnte. Jedoch würde das Kabel dann ca. 15m lang sein. Das wird dann wohl ohne Elektronik im Tank nicht funktionieren oder?

Gruß
Bjoernar


HCS

Wenn Du keinen Funk brauchst/willst, ist das Projekt dann eher das Falsche.
Mit dem SRF02 könnte das gehen, ich habe an einer anderen Steuerung I2C Komponenten, die ca. 20m von der Steuerung entfernt sind.
Angeschlossen über CAT 5 Kabel. Allerdings benötigt man dann Bus-Treiber (nur) auf der Steuerungsseite. Ich habe P82B96 verwendet.
Aber damit werden wir dann hier OT  ;)

oli82

#70
Ich brauche mal die Hilfe beim einbinden des Sensors in Fhem.

Nachdem ich nun endlich den SR04T zum laufen bekommen habe, bekomme ich den Sensor in Fhem nicht angelegt.

Folgende Ausgabe erhalte ich im Log, trotz aktivem Pairing:
2015.08.07 10:37:27 3: JeeLink: Unknown code End receiving, HEX raw data: 9F FE 3C FC BE FF 85 FF D DF 88 F8 5B 7D E7 D8 , help me!
2015.08.07 10:37:27 3: JeeLink: Unknown code ## CRC FAIL ##, help me!
2015.08.07 10:37:27 3: JeeLink: Unknown code No valid start, help me!
2015.08.07 10:37:27 3: JeeLink: Unknown code No valid Temperature: 96.20, help me!
2015.08.07 10:37:27 3: JeeLink: Unknown code No valid Level: 821.50, help me!
2015.08.07 10:37:40 3: JeeLink: Unknown code End receiving, HEX raw data: 6 DF BE 80 FB DF 1F 80 CF DF F8 C6 7E 3F D6 80 , help me!
2015.08.07 10:37:40 3: JeeLink: Unknown code ## CRC FAIL ##, help me!
2015.08.07 10:37:40 3: JeeLink: Unknown code No valid start, help me!
2015.08.07 10:37:40 3: JeeLink: Unknown code No valid Temperature: 108.00, help me!
2015.08.07 10:37:40 3: JeeLink: Unknown code No valid Level: 730.50, help me!
2015.08.07 10:37:40 3: JeeLink: Unknown code No valid Voltage: 16.10, help me!


Das Sketch habe ich nur um die Laufzeitberechnung des SR04T erweitert. Sonst ist alles wie von Subversion.

Die Ausgabe direkt über den UART am Jeenode lautet aber korrekt:
Started
Values: 29.5 cm   27.70 C   5.07 V
Sent with 17241
Sent with 9579
2582 ms powered


Danke für die Hilfe

HCS

Das Level Modul macht kein Autocreate, da die Adresse des LevelSenders ja bekannt ist. Musst manuell anlegen

define myLevel Level 1

passend zum define im Sketch
#define SENSOR_ID             1

oli82

Danke für die Info.
Nun bin ich zufrieden und es läuft ;)

Gruß Oli

Wzut

Fein das es nun geht , allerdings macht mich bei dir deine Zykluszeit stutzig :

Zitat von: oli82 am 07 August 2015, 10:36:50
2582 ms powered

2,5 Sekunden ? wo verbrauchst du denn die ganze Rechenzeit ?
Ich komme mit meiner aktuellen Variante auf 100ms. Bin mal gespannt wie lange bei dir ein Batteriesatz hält.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

HCS

Das sieht wie der erste Zyklus nach der Initialisierung aus. Könnte sein, dass da die Zeit für die Initialisierung mit drin ist.
Falls die weiteren Zyklen auch so lange brauchen, dann würde ich mal schauen.

Meiner läuft mit dem ersten Batteriesatz (4 "Aldi" AA Zellen) nun seit 1,5 Jahren nonstop und ist inzwischen bei 5,3V