JeeLink v3c/ESP8266 zur Einbindung von Davis Vantage

Begonnen von habeIchVergessen, 15 November 2015, 12:13:53

Vorheriges Thema - Nächstes Thema

habeIchVergessen

ein monotonic userReading liefert Tages-, Monats- und Jahreszahlen.

Xanti19

Sorry, aber die vorgeschlagene Umsetzung mit monotonic bekomme ich nicht hin. Es scheitert bei mir schon daran, welches Reading ich hierfür nehmen muss.  :-[

Da ich die Anzeige des Tageswertes eigentlich nur für meine Tablet-UI brauche, habe ich RainTipCount mal testweise auf 0 gesetzt. Der Wert wird dann jedoch mit der nächsten Aktualisierung wieder auf den ursprünglichen Wert zurückgesetzt...

Xanti19

So, nach weiteren Versuchen (halber Sonntag) habe ich die folgenden UserReadings angelegt:

RegenmengeTagCount monotonic { ReadingsVal("VantageVue","RainTipCount",0);;},
RegenmengeTag none { ReadingsVal("VantageVue","RegenmengeTagCount",0)*0.2;;}

RegenmengeTagCount wird um 00:01 auf 0 gesetzt. Jetzt muss ich den nächsten Regen abwarten, um zu sehen, ob ich auf dem richtigen Weg bin... ;)

Hatte es vorher mit den Readings aus Antwort #101 versucht.


Xanti19

Es hat eben geregnet und sechs Wippenschläge wurden in RegenmengeTagCount korrekt eingetragen. Auch die RegenmengeTag stimmt.  :)

Wie verhält sich eigentlich das Reading RainTipCount? Wird dieser Wert zu einem bestimmten Zeitpunkt oder Erreichen eines bestimmten Wertes auf 0 gesetzt?

habeIchVergessen

RainTipCount geht von 0 bis 127.

zu dem monotonic userReading gehört dann noch ein statistics. Dieses berechnet dann basierend auf dem monotonic-Wert Tages-, Monats- und Jahres-Zähler.

Xanti19

Vielen Dank für die Info. Aktuell steht das Reading bei 112. Der Tageswert würde dann also bei mir nach dem Sprung von 127 auf 0 bei dem bis dahin berechneten Wert (RegenmengeTag) stehen bleiben. Kann man dies irgendwie abfangen? Ist allerdings für mich auch nicht so dramatisch.

Zitatzu dem monotonic userReading gehört dann noch ein statistics. Dieses berechnet dann basierend auf dem monotonic-Wert Tages-, Monats- und Jahres-Zähler.

Wäre schön, wenn Du hierfür ein Beispiel einstellen könntest. 

habeIchVergessen

monotonic

define KeyValueProtocol_Esp1wire_1d.a20000000101.6b KeyValueProtocol Esp1wire 1d.a20000000101.6b
attr KeyValueProtocol_Esp1wire_1d.a20000000101.6b alias Zaehler
attr KeyValueProtocol_Esp1wire_1d.a20000000101.6b IODev myKVPUDP
attr KeyValueProtocol_Esp1wire_1d.a20000000101.6b event-on-change-reading .*
attr KeyValueProtocol_Esp1wire_1d.a20000000101.6b userReadings Gas:(Counter.1.*) monotonic { ReadingsVal("KeyValueProtocol_Esp1wire_1d.a20000000101.6b", "Counter.1", 0)/100.0 }


statistics (abschließende "." sorgt für versteckte Readings .Gas)

define counterStats statistics KeyValueProtocol_Esp1wire_1d.a20000000101.6b .
attr counterStats ignoreDefaultAssignments 1
attr counterStats deltaReadings Gas
attr counterStats singularReadings KeyValueProtocol_Esp1wire_1d\.a20000000101\.6b:Gas:Delta:(Day|Month|Year)


verstecke Readings

list -r KeyValueProtocol_Esp1wire_1d.a20000000101.6b

Dirk P.

#247
Zitat von: habeIchVergessen am 06 Mai 2017, 00:32:17
hat lange gedauert!

anbei ein Sketch, der sich für ein Arduino Uno/Nano und ESP8266 kompilieren lässt und die Änderungen zu Soil Temperature/Moisture und LeafWetness enthält. Bitte nur zu Testzwecken einsetzen und ggf. ein Feedback abgeben.

fhem-master.7z unter Windows in folgendes Verzeichnis entpacken (Arduino IDE neu starten)

%USERPROFILE%\Documents\Arduino\libraries


Password für NodeMCU v0.7 (ESP8266)

Es wird danach gefragt...bei der WIFI Abfrage...

Falls es die Chip ID sein sollte, dann geht es nach der Eingabe nicht weiter.
Kein Konfigurationsfenster.
D.h. ich kann keine Ssid bzw. Schlüssel eingeben.
Auch lässt sich sich nicht die IP über den Browser öffnen. (Safari)

ERLEDIGT

Tablet und anderer Browser war die Lösung


habeIchVergessen

#248
NodeMCU v0.8b

unter Windows: die beiden anderen 7z-Dateien nach %USERPROFILE%\Documents\Arduino\libraries entpacken
unter Linux: entsprechenden symbolischen Link anlegen

Arduino IDE 1.8.9 oder besser 1.6.13

in Zeile 196 (NodeMCU.ino) steht noch das init-Command (GUI fehlt noch)

195  // register station, enable receive
196  handleInput('s', true, 0, true, 16);


Zeile 196 kopierst du und änderst dann die Werte. In meinem Beispiel ist es ID 0 (3. Parameter) als Vantage Vue (5. Parameter = 16). Die richtigen Werte findest du in Vantage.h (fhem-master library) Zeile 192 (// Davis VP2 standalone station types) und folgende. Meine 16 (0x10) ist STYPE_VUE.

habeIchVergessen

NodeMCU v0.8c kompilierbar für Arduino Uno, Nano (kein Laufzeittest) und ESP8266, ESP32
neu: GUI für Stations-Setup
Binaries für Nano und Wemos D1 mini enthalten.

Dirk P.


Dirk P.

Hallo,
wie komme ich in die GUI....nach der Eingabe über die Weboberfläche OK via Wemos Mini.
Leider kann ich erst mit dem Wemos weitermachen, wenn die neuen eingetroffen sind.....mein GPIO 15 ist defekt.
Aber wie komme ich auf den Nano der über USB steckt, dorthin?
Kann ja nur über Fhem sein...

Zudem habe ich beim Nano festgestellt, das kein BMP180 und kein BMP280 erkannt werden.

Grüße Dirk


habeIchVergessen

du kannst mit
set JeeLink raw
Kommandos an einen Nano schicken. ggf. erscheint der Output dann im FHEM-log (habe ich lange nicht mehr benutzt)

den BMP180 hatte ich erst einmal ausgebaut, da ich seit dem letzten Arduino UNO/Nano-Build (v0.7) noch Unterstützung für einen BME680 in die library eingebaut habe. Da waren dann "nur" noch 250 Bytes freier Speicher übrig.
Wenn ich es schaffe, dann poste ich heute noch Sourcen, die den BMP180 wieder unterstützen.

Dirk P.

wäre toll wenn der BMP280 unterstützt wird.

Danke

habeIchVergessen

#254
v0.8d - Codebase für Arduino Nano/Uno + ESP8266/32 (NodeMCU gibt es ab jetzt nicht mehr)
Firmware für Arduino mit Unterstützung für BMP180 und Wemos D1 mini BME680, BME280 und BMP180 (werden in der Reihenfolge gesucht und nur 1 unterstützt)

BMP280 ist "nur" ein Luftdrucksensor. Meinst du eventuell einen BME280?