Pflanzensensor Parrot Flower Power in FHEM // BT4.0

Begonnen von snowball7g, 25 Januar 2015, 18:51:31

Vorheriges Thema - Nächstes Thema

CoolTux

Zitat von: mumpitzstuff am 09 Februar 2017, 12:43:38
Erwischt. Ich muss gestehen, dass ich noch nicht einen Blick in die Doku geworfen habe. Das liegt zum Teil an meinem Beruf, der mich gelehrt hat: vertraue dem Code aber niemals der Doku.

Verständnisfrage: Welchen Vorteil hat es eine Notification auszulösen und dann über die Callback Funktion das Reading zu setzen? Wenn ich sowieso den Wert auslesen und direkt vergleichen kann, dann kann ich doch direkt das Reading setzen und FHEM lösst dann ein Event aus, weil sich das Reading geändert hat. Jeder Anwender kann dann ein eigenes Notify erzeugen und auf solche Events reagieren. Für mein Empfinden ist der Weg direkter. Beim Xiaomi Sensor machst du das z.b. bei dem Battery Reading.

Ja das Thema hatte ich letztens erst. Lach. Du hast Recht, der Weg wäre direkter. Aber nicht unbedingt Strukturiert.
Man muß schauen wie viele Daten man vergleichen will und was man genau machen will. Das mit dem Batterie Reading ist ja nur eine einzige Umsetzung. Das geht ja noch.
Du jedoch willst mehrere Daten vergleichen und entsprechend reagieren. Das mit dem Reading setzen war nur so eine Idee. Man muß noch nicht mal ein Reading setzen, Du kannst auch einfach nur ein Event erzeugen, also ganz ohne Reading.
Beispiel:
Es kommen Daten die Du vergleichst. Der Feuchtigkeitsgehalt Deiner Pflanze ist laut Attribut minFeucht zu gering. Nun setzt Du einfach ein Event ab (giessen). Wichtig ist das Du das Event für Deine User Dokumentierst, da ja nicht für den User ersichtlich.

Thema Doku. Die Doku ist wirklich Klasse, der Markus hat sich da Mega Mühe gegeben und es ist verständlich geworden. Es ist wichtig zu verstehen was genau einzelne Fn machen.
Das Problem hatte ich letztens erst, der Modulauthor hat sich viel Mühe gegeben sein Perlcode zu schreiben und das ganze in ein abkopiertes Modul ein zu fügen. Das Ende vom Lied war das er nicht wusste was FHEM spezifische Funktionen machen und somit hat er zwar eine Undef Funktion im Initial mit an gegeben, aber die eigentliche Funktion fehlte vollends. Somit ist FHEM in den Tod gegangen wenn man ein Device löschen wollte.
Dann hat er ein TCP Socket aufgebaut und daraus gelesen. Sein Aufbau plus Lesen hat FHEM für diesen Moment blockiert. Das war zwar nur ne Sekunde oder so, aber es hat nunmal blockiert.
Für sowas gibt es schon fertige FHEM Funktionen welche man nutzen sollte. So wird ein Socket zum Beispiel an einer select Liste übergeben und wenn Daten bereit stehen wird die ReadFn aufgerufen um die Daten zu holen. Alles ganz ohne blockieren.




Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mumpitzstuff

Die aktuelle Beta liegt hier ab, falls es jemand schon mal vorab testen möchte:

https://github.com/mumpitzstuff/fhem-ParrotFlowerPower/tree/devel

Ich lasse das ansonsten noch ein paar Tage laufen und teste die neuen Features systematisch durch, bevor ich die Änderungen mit dem Master Branch merge.

mumpitzstuff

Frage: Besteht Interesse an einem Rohwert für den Dünger im Boden? Das wäre aber nur ein Rohwert und es gibt keinerlei Information dazu wie man den umrechnet. Zudem ist der Wert Temperaturabhängig und wahrscheinlich auch Feuchtigkeitsabhängig. Ich hatte den Wert deshalb erst einmal weg gelassen, da er meiner Meinung nach wenig bringt. Selbst in der App muss man gefühlt jeden Tag in den Blumenkübel pieseln, um den Wert im Normbereich zu halten.
Wenn jemand trotzdem dringenden Bedarf sieht, bitte melden. Zur Not nehme ich den optional rein, dann kann sich jeder selbst aussuchen, ob er den Wert braucht oder nicht. Das Auslesen geht halt auf die Batterielaufzeit...

hartenthaler

Ich denke, dass ein Düngerrohwert, den man kaum interpretieren kann, keinen Nutzen bringt. Der Düngerwert ist eh der zeitlich am wenigsten veränderliche und so eher nicht so wichtig; ich kann ja immer mal wieder auch in der App nachsehen.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

emilio_35

#79
Hallo
ich habe ein Raspberr pi 2 und habe mir folgenden BT Stick Installiert ,,Logilink BT0015 Bluetooth Adapter

Folgendes Ergebnis erhalte ich wenn ich scanne

pi@raspberrypi ~ $ sudo service bluetooth status
[ ok ] bluetooth is running.
pi@raspberrypi ~ $ hcitool scan
Scanning ...
        CS:B1:1A:BD:60:DF       [TV] Samsung 7 Series (65)

Der Pflanzensensor ist nicht dabei.

Ich habe das ganze schon mal mit einen Raspberry pi 3 versucht. Hiermit habe ich den Sensor gefunden. Leider musste ich wieder auf das Raspberry pi 2 umsteigen das sich Enocean, Z-Wave und BT nicht vertrgaen haben.

Hat jemand eine Lösung hierzu ?
Fhem Raspberry Pi, SPS, S7 315PN,VU+

andi11

ist der Empfang vielleicht einfach schlechter? Kannst du mit dem Sensor näher zum Dongle?

emilio_35

#81
Habe den Sensor direkt neben dem raspberry liegen, das kann es nicht sein.
Geht es bei deinem Pi2 ? Wenn ja welchen BT Stick verwendest du ?
Fhem Raspberry Pi, SPS, S7 315PN,VU+

andi11

LogiLink BT0015 @ Raspi 2 mit Jezzy

Allerdings muss das Kommando hcitool lescan sein!

emilio_35

#83
Ich habe

PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"


Bei hcitool lescan erhalte ich

pi@raspberrypi ~ $ hcitool lescan
Set scan parameters failed: Operation not permitted
pi@raspberrypi ~ $



Fhem Raspberry Pi, SPS, S7 315PN,VU+

andi11

ok das ist gemein. Das bluez Packet ist sehr alt als aus den originalen Raspi Quellen. Vorallem bei wheezy.
Ich hab letztens erst ewig rumgefrickelt um es mit wheezy zum laufen zu bekommen, am Ende dann aber auf jezzy upgegradet.

Der Befehl heist "hcitool lescan" um ein Bluetooth LE Gerät zu finden, wie der Pflanzensensor z.b. eines ist. Wenn dein System den nicht kennt, ist vermutlich auch das bluez Packet sehr alt.

emilio_35

Ok
also müsse ich auf jezzy upgegradet.
Werde woll das ganze System neu aufsetzen müssen oder ?
Fhem Raspberry Pi, SPS, S7 315PN,VU+

andi11

Ne so schlimm ist das nicht.  Auser du hast jede Menge Sonderkram drauf....
Ich habe es nach https://www.datenreise.de/raspberry-pi-raspbian-linux-wheezy-jessie-upgrade/ gemacht.

emilio_35

Fhem Raspberry Pi, SPS, S7 315PN,VU+

mumpitzstuff

Hast du zuerst mal dein System auf den aktuellen Stand gebracht?


sudo apt-get update
sudo apt-get upgrade


Ansonsten habe ich mein System ebenfalls auf Jessie geupdated. Hat einwandfrei funktioniert. Du solltest ebenfalls gucken, dass du alle notwendigen Pakete installiert hast.

https://klenzel.de/3345

Dann sollte auch ein sudo hcitool lescan funktionieren...

mumpitzstuff

Version 0.0.3 des Moduls ist verfügbar mit folgenden Änderungen:


  • attribute decimalPlaces (1-6 decimal places are possible) added
  • detection of running gatttool and hcitool improved
  • hciDevice attribute fixed
  • hciDevice attribute fixed
  • sunlight value mol/(m * m)/d converted to lux
  • attributes for min/max SoilMoisture, AirTemperature and Sunlight added
  • 3 new Readings added: stateSoilMoisture, stateAirTemperature and stateSunlight added (states can be: ok, low or high)
  • some small bugfixes

Das Plugin selbst findet ihr hier: https://github.com/mumpitzstuff/fhem-ParrotFlowerPower