Edit 26.1.2017: Es gibt mittlerweile zu diesem Sensor ein Modul von CoolTux:
https://forum.fhem.de/index.php/topic,60914.0.html
(https://forum.fhem.de/index.php/topic,60914.0.html)
--------
Hallo,
wollte hier nur mal kurz einen weiteren Bluetooth 4.1 BLE Pflanzensensor (ca. 12 Euro) vorstellen, den ich ans fhem (Raspberry) angebunden habe. Bisher läuft alles einwandfrei. Mir gefällt besonders, dass man sich nirgends anmelden oder registrieren muss, um die Werte auslesen zu können.
https://xiaomi-mi.com/sockets-and-sensors/xiaomi-huahuacaocao-flower-care-smart-monitor/
(https://xiaomi-mi.com/sockets-and-sensors/xiaomi-huahuacaocao-flower-care-smart-monitor/)
Der Sensor liefert folgende Werte:
- Temperatur
- Feuchtigkeit
- Licht
- Dünger
Nach der Inbetriebnahme des Sensors einfach mit
sudo hcitool lescan
nach allen Bluetooth Geräten in der Umgebung suchen. Das Gerät wird als "Flower mate" gelistet. Man benötigt die zugehörige MAC-Adresse.
Dann sofern noch nicht geschehen bc installieren:
apt-get install bc
Dann einfach einen Dummy in FHEM anlegen, z.B.
define Plant1 dummy
Dann noch ein paar Readings dazu:
Zitatattr Plant1 userReadings Moisture,Fertility,Lux,Temp
(evtl. nicht notwendig?)
Dann ein Skript erstellen mit folgendem Inhalt:
#!/bin/bash
stringA=$(sudo gatttool -b <<MAC Adresse>> --char-read --handle=0x35)
stringT=${stringA:36:2}${stringA:33:2}
stringT=$(echo "$stringT" | tr a-f A-F)
stringT=$(echo "ibase=16; $stringT" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading Plant1 Temp $stringT"
stringL=${stringA:45:2}${stringA:42:2}
stringL=$(echo "$stringL" | tr a-f A-F)
stringL=$(echo "ibase=16; $stringL" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading Plant1 Lux $stringL"
stringM=${stringA:54:2}
stringM=$(echo "$stringM" | tr a-f A-F)
stringM=$(echo "ibase=16; $stringM" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading Plant1 Moisture $stringM"
stringF=${stringA:60:2}${stringA:57:2}
stringF=$(echo "$stringF" | tr a-f A-F)
stringF=$(echo "ibase=16; $stringF" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading Plant1 Fertility $stringF"
exit
Dabei <<MAC Adresse>> durch die MAC Eures Sensors ersetzen.
Das Skript speichern und ausführbar machen (chmod 755).
Viel Spaß
stoxx
Wie lange haelt die Batterie?
Was ist Fertility?
Welche Bereiche werden von den Werten abgedeckt?
Wozu braucht man ein userReading?
Sollte man den Skript nicht auch regelmaessig aufrufen, z.Bsp. mit sowas wie define x_at +*00:05 "flower_monitor.sh" ?
Lauter Fragen :)
Hi,
ZitatWie lange haelt die Batterie?
Habe leider keine Erfahrungswerte, da ich die Teile erst seit 2 Wochen in Betrieb habe und ich leider bisher kein handle herausgefunden habe, welches die Batterie ausliest. Sobald ich hierzu mehr weiß, lasse ich es wissen.
ZitatWas ist Fertility?
Dünger
ZitatWelche Bereiche werden von den Werten abgedeckt?
Hmm, verstehe die Frage nicht.. Meinst Du welche Werte die Variablen annehmen können?
ZitatWozu braucht man ein userReading?
Ich habe das halt so gemacht.. Man kann natürlich auch jeden Wert in einen eigenen Dummy speichern..
ZitatSollte man den Skript nicht auch regelmaessig aufrufen, z.Bsp. mit sowas wie define x_at +*00:05 "flower_monitor.sh" ?
Klar, da gibt es verschiedene Möglichkeiten: Entweder manuelle Abfrage bei Klick eines Buttons, oder regelmäßige Abfrage alle 5 Minuten, .. Je nach Geschmack..
ZitatLauter Fragen
Nur zu .. ;)
vg stoxx
ZitatWas ist Fertility?
Dünger
Was genau heisst das? Wird da PH-Wert gemessen?
ZitatMeinst Du welche Werte die Variablen annehmen können?
Ja. Z.Bsp. welchen Bereich deckt der Lichtsensor ab, usw. Ich will das Geraet ja auch missbrauchen :)
ZitatIch habe das halt so gemacht.. Man kann natürlich auch jeden Wert in einen eigenen Dummy speichern..
Man kann doch in einem dummy beliebig viele Readings speichern ohne userReadings, dem setreading ist userReadings egal. Oder ich habe was uebersehen.
Vielen Dank fuer die uebrigen Infos.
ZitatWas genau heisst das? Wird da PH-Wert gemessen?
Bin jetzt auch kein Biochemiker, aber ich würde erwarten, dass hier die elektrische Leitfähigkeit der Erde als Maß für die Konzentration gelöster Ionen gemessen wird. Daher die zwei Kontakte am Sensor..
ZitatJa. Z.Bsp. welchen Bereich deckt der Lichtsensor ab, usw. Ich will das Geraet ja auch missbrauchen :)
Das habe ich dazu gefunden:
Zitat
As for its accuracy, it can test up to 100000 LUX light intensity and the light intensity be accurate to 100LUX, the temperature accuracy up to 0.5 degrees Celsius. four EC probe integrated at the bottom is used to test the content of available nutrients in the soil.
Quelle: http://www.igeekphone.com/xiaomi-smart-flower-monitor-for-house-plants-unboxing-review/ (http://www.igeekphone.com/xiaomi-smart-flower-monitor-for-house-plants-unboxing-review/)
ZitatMan kann doch in einem dummy beliebig viele Readings speichern ohne userReadings, dem setreading ist userReadings egal. Oder ich habe was uebersehen.
Ich dachte, man braucht die userreadings um eigene Readings zu definieren.. ::) Hat aber bisher auch noch nicht geschadet..
Viele Grüße
stoxx
wo hast du das Teil bestellt ? Auf der HP kommen ja nochmal 21$/11$ Versand mit drauf. Nimmt man 2 Geräte, verdoppelt sich auch der Versand
http://www.gearbest.com/other-garden-supplies/pp_373947.html (http://www.gearbest.com/other-garden-supplies/pp_373947.html)
Achtung : Zollfrei bis 22 Euro Gesamtpreis.. Ich konnte max. 2 Stk. pro Bestellung zollfrei ordern..
Am günstigsten kommt man derzeit bei Aliexpress (https://www.aliexpress.com/item/2016-Original-Xiaomi-Flora-Monitor-Digital-Plants-Grass-Flowers-Soil-Water-Light-Smart-Tester-Sensor-for/32721733984.html) weg.
Aber wie wertet man die Daten aus, mit der App von Blume zu Blume spazieren ist nicht so praktikabel.
Und wie weit kommt Bluetooth LE? reicht ein Empfänger im Raum oder muss er auf der Fensterbank klemmen?
Hallo,
ja wäre interessant zu wissen, zumindest die erzielte Reichweite.
Allerdings so wie ich das bislang (gleich zu Beginn) verstanden habe:
PI mit BT(-Modul bzw. beim 3er direkt?!) und dann dort per Script mittels 'gatttool ' die Daten auslesen und in Readings speichern.
Hab mir jetzt einfach mal einen bestellt (Gartensaison ist zwar rum aber kommt ja wieder ;-) ) und werde das mal testen...
Bin schon lang auf der Suche nach sowas...
...bastle parallel aus einem Homematic-Diff-Temp-Sensor einen Feuchtemesser:
https://www.stall.biz/project/robuster-bodenfeuchtesensor-fur-den-ausseneinsatz (https://www.stall.biz/project/robuster-bodenfeuchtesensor-fur-den-ausseneinsatz)
und habe mich auch mal für einen Selbstbauversuch angemeldet:
https://forum.fhem.de/index.php/topic,57460.msg488827.html#msg488827 (https://forum.fhem.de/index.php/topic,57460.msg488827.html#msg488827)
Mal sehen welcher besser ist ;-)
Gruß, Joachim
Hi,
ZitatAber wie wertet man die Daten aus, mit der App von Blume zu Blume spazieren ist nicht so praktikabel.
Nein, die Smartphone App brauchst du natürlich nicht mehr. Das Abfragen erledigt fhem bzw dein Raspberry .. Ich habe bei mir ein AT angelegt, welches alle 7 Minuten die Pflanzenwerte abruft.
ZitatUnd wie weit kommt Bluetooth LE? reicht ein Empfänger im Raum oder muss er auf der Fensterbank klemmen?
Ich weiss - diese Antwort ist immer super beliebt ;) :
Das hängt von den jeweiligen Räumlichkeiten, Mauern, Störquellen (WLAN, DECT) usw. ab. In meiner 80 qm Wohnung kann halt einfach der Raspberry nicht sooooo weit weg von den Pflanzen stehen - bei mir geht das ohne Probleme.. Beim Betrieb über Stockwerke hinweg - keine Ahnung..
ZitatGartensaison ist zwar rum aber kommt ja wieder ;-)
Vorsicht, das Teil ist nur für drinnen..
Oh, nur für innen...
Hmm, egal. Mal sehen was man da machen kann...
Hab ja erst mal nur einen zum Testen...
Danke, Joachim
Ich würde auch versuchen, den für draussen zu verwenden. Hier ein wenig Silikon, hier ein wenig Heisskleber und machnmal ein kleines Gehäuse wirken oft wunder und machen aus IP20 dann IP44/IP54.
Aber auch bei mir stellt sich die Frage nach der Anbindung bezüglich der Reichweite.
Hat das schon jemand (ggf. auch wegen Bedarf in der Wohnung) über eine Zwischenlösung probiert und nicht direkt an das BT Modul des Pi angeschlossen ? Ich denke da so an einen nano mit BT2S und mysensors Übertragung an den raspi.
Wäre toll, wenn ihr posten würdet, wie ihr das Teil bei euch angebunden habt.
Danke und Grüße
Jörg
P.S. Teil bestellt und habe ja jetzt 4 Wochen Zeit.
P.P.S. mir gefällt die Lösung mit dem xiaomi eigentlich besser, als das 40 € Teil von Parrot. Letztlich könnte ich deutlich mehr Bereiche/Pflanzengebiete überwachen wegen des Preises 1:4
Zitat von: jnewton957 am 26 September 2016, 07:26:59
Ich würde auch versuchen, den für draussen zu verwenden. Hier ein wenig Silikon, hier ein wenig Heisskleber und machnmal ein kleines Gehäuse wirken oft wunder und machen aus IP20 dann IP44/IP54.
Aber auch bei mir stellt sich die Frage nach der Anbindung bezüglich der Reichweite.
Vielleicht kann man mit einer Bluetooth-Richtantenne eines mehr machen können. Gleiche Länge der Wellen wie bei WLAN ist gegeben. Also den Garten vom Hausdach aus mit einer Antenne in Brillenform beleuchten.
Welchen Bluetooth-Nubsi habt ihr denn am Start für die Datenkollektion?
Das Teil selber scheint ja recht gut zu sein, der Preis stimmt. Aber leider sieht es nach resistiver Messung aus. Die scheint leider nicht so toll zu sein.
https://wwwvs.cs.hs-rm.de/vs-wiki/index.php/Internet_der_Dinge_WS2015/SmartPlant#Messmethode_2:_Kapazitiv
Hallo stoxx,
danke für Deine Mühen.
Leider klappt die Verbindung mit gatttool nicht:
Fehler: Connect:Connection refused (111)
Hast Du Ahnung, woran das liegen könnte. Die Adresse hab ich mit lescan gefunden.
Viele Grüße
Reinhard
Hi Laffer,
leg bitte mal testhalber den Sensor direkt neben deinen Raspberry (?) . Hast Du dann noch immer die Fehlermeldung?
Wenn ja, auf welchem System hast Du Fhem laufen (Gerät, Betriebssystem, usw.)
Viele Grüße
stoxx
Hallo stoxx,
also hab einen Raspir2 mit Jessie als Betriebssystem drauf.
Für Bluetooth hab ich die Version 5.42 mit runtergeladen und kompiliert und installiert.
Der Sensor liegt von Anfang an direkt beim Bluetooth-Stick. Mit hcitool lescan wird er ja auch erkannt.
Habe mir inzwischen auch mal die App runtergeladen, um einen defekten Sensor auszuschließen. Mein Tablet findet den Sensor und zeigt auch die Temperatur korrekt an.
Der Sensor also scheint zu funktionieren.
Am Sensor selbst gibt's ja nix zu drücken, geht ja nur Batterie raus und wieder rein.
Bin ratlos.
Viele Grüße
Reinhard
Hi Reinhard,
was ergibt denn bei dir
dpkg --status bluez | grep '^Version:'
Irgendwie scheint das an der bluez Version zu liegen..
Bei mir kommt:
Zitat
Version: 5.23-2+rpi2
Hallo stoxx,
bei mir kommt nur die Meldung, daß bluez nicht installiert ist. Das kann aber daran liegen, daß ich bluez ja nicht mir apt-get installiert habe, sondern direkt mit wget das Archiv heruntergeladen habe, es entpackt, kompiliert und installiert habe. Gatttool muß man anschließend noch von Hand in /usr/bin kopieren. Hab ich auch getan.
service Bluetooth status -l
liefert daemon-version 5.42
Hi Reinhard,
das erinnert mich an etwas, das mir ein Arbeitskollege geschickt hat.. Mach mal das
https://urbanjack.wordpress.com/2014/06/05/how-to-set-bluez-into-ble-or-le-only-mode-ibeacon/ (https://urbanjack.wordpress.com/2014/06/05/how-to-set-bluez-into-ble-or-le-only-mode-ibeacon/)
und am Schluss
btmgmt le on
(Komischerweise musste ich selbst das nicht machen)
vg stoxx
Hallo stoxx,
danke Dir, das war die Lösung...zumindest von der Bluetooth-Seite :-)
Hatte zwar auch schon etliches zum Thema Linux Bluetooth gegoogelt/gelesen, aber das hatte ich noch nicht gefunden. Super!
Jetzt will er mir aber das Reading nicht setzen. Irgendwie läuft das mit dem Reading setzen nicht...er scheint die Variable im setreading nicht umzusetzen. Setze ich in Deinem Skript statt der Variable im setreading-Befehl eine absolute Zahl klappts.
Mal schauen.
Danke
Reinhard
Hallo stoxx,
jetzt bin ichs nochmal. Also das Script funktioniert. Leider klappt die Abfrage mit gatttool nicht immer zuverlässig. Also wenn die Abfrage keinen Wert, sondern eine Fehlermeldung liefert, steht natürlich auch nichts in den Variablen drin. Eigentlich logisch.
Danke für Deine Bemühungen und Deine Hilfe.
Schönes Wochenende noch
Reinhard
Hi Reinhard,
die Zuverlässigkeit ist abhängig von der Nähe , den Störquellen (WLAN, DECT,..) , usw. Darum frage ich meine 5 Pflanzen-Sensoren alle 7 Minuten ab. Irgendwann meldet sich dann immer ein Sensor ;-)
vg stoxx
Moin,
günstig gibts die Dinger hier (unter 10 €):
https://www.fasttech.com/product/5258000-authentic-xiaomi-mi-bluetooth-v4-1-smart-flower
Keine Mengenbeschränkung
Ob der Shop seriös ist, kann ich nicht sagen. Bestellt hab ich jetzt einfach mal welche.
Mengenbeschränkung legt Zoll und Steuer fest: 20EUR bzw. ca. 26EUR (weil da dann die fälligen Gebühren unter 5EUR wären und somit entfallen)...
Aber was mir wichtiger ist: da steht was von IPX5 Waterproof...
...da bin ich ja mal gespannt wenn meiner kommt...
Heißt wenn ich jetzt 10 Bestelle dann muß ich da drauf zahlen?
Und wenn ich einfach 5 2er Packs bestelle?
Jep.
Ab 20EUR (bzw. 26EUR) keine Steuer und keine Gebühren.
Danach je nach Ware:
http://www.zoll.de/DE/Privatpersonen/Postsendungen-Internetbestellungen/Sendungen-aus-einem-Nicht-EU-Staat/Zoll-und-Steuern/Internetbestellungen/internetbestellungen_node.html (http://www.zoll.de/DE/Privatpersonen/Postsendungen-Internetbestellungen/Sendungen-aus-einem-Nicht-EU-Staat/Zoll-und-Steuern/Internetbestellungen/internetbestellungen_node.html)
Funktioniert wahrscheinlich nur, wenn etwas Zeit zwischen den Bestellungen liegt...
...ansonsten: wenn es nicht auffällt (sie also beispielsweise nicht zusammen geliefert werden) auch kein Problem...
(Aber wohl eigentlich auch nicht legal)
Bin aber auch kein Steuer-/Zoll-Jurist...
...hab nur in einem anderen Thread drüber gelesen und mich mal erkundigt...
ZitatUnd wenn ich einfach 5 2er Packs bestelle?
Genauso habe ich das jetzt gemacht!
Such mal bei Aliexpress nach "Xiaomi Plant". Da gibt es viele Anbieter.
Nur um zu vermeiden, dass nicht dann doch alles gemeinsam in einem Paket landet.
MfG
Thomas
Da ich für mein Nuki BT Projekt eh das gatttool benötige steht die Frage im Raum ob ich ein gatttool IODev Modul mache und dann für andere Module eine Art API bereit Stelle.
Ein Pflanzenmodul könnte dann das IODev Modul zum beziehen der Daten verwenden.
Nur so eine Idee.
ZitatUnd wenn ich einfach 5 2er Packs bestelle?
Genauso habe ich das jetzt gemacht!
Hey, bitte nicht gleich übertreiben.. Testet doch erstmal mit einem Sensor. Ich kann nichts garantieren bzgl. Reichweite, Batterie-Laufzeit und Qualität; die Dinger habe ich gerade mal ein paar Wochen laufen. Und ich kann sagen, dass sie bei mir ganz okay laufen, aber das heisst nicht, dass das bei euch auch so ist.. Wie gesagt, keine Langzeittests. Vielleicht ist es ja auch Schrott..
Zitatsteht die Frage im Raum ob ich ein gatttool IODev Modul mache und dann für andere Module eine Art API bereit Stelle
Bitte machen !! :-))
lg stoxx
Kurze Meldung von mir.
Das IODev Modul hat schon Funktionalität. Zum rumspielen baue ich gerade das Sensor Modul. Kann mir mal einer das hier in Perl bringen bitte
stringT=${stringA:36:2}${stringA:33:2}
stringT=$(echo "$stringT" | tr a-f A-F)
stringT=$(echo "ibase=16; $stringT" | bc)
Also
stringT=${stringA:36:2}${stringA:33:2}
Kann ich das eins zu eins übernehmen? Denke wohl eher nicht
stringT=$(echo "$stringT" | tr a-f A-F)
Hier wird wohl einfach Kleinbuchstaben durch Großbuchstaben ersetzt. Das bekomme ich hin.
stringT=$(echo "ibase=16; $stringT" | bc)
Nachtrag: Das kann man wohl einfach in hex($value) setzen. Dann kommt der Dezimalwert raus.
Hier wird der Wert umgerechnet. Aber von was in Dezimal? Von Hex?
Kann ich hier einfach ein hex($stringT) machen?
Grüße
Hier mal die 2 Module in der Übersicht. Einmal das IODev Modul 10_BTLE.pm und einmal das Sensor Modul 42_BTLESensor.pm mit eingerichtet für den GTag zum Batterie auslesen.
Grüße
ZitatstringT=${stringA:36:2}${stringA:33:2}
Das ist einfach nur eine string manipulation - string ist: nach stelle 36 zwei stellen plus nach stelle 33 zwei stellen..
ZitatKann ich hier einfach ein hex($stringT) machen?
Ja, das sollte reichen
Wie sind denn bis jetzt die Erfahrungen betreffend Reichweite und Zuverlässigkeit?
Ich klink mich hier mal ein, find ich total cool.
ZitatWie sind denn bis jetzt die Erfahrungen betreffend Reichweite und Zuverlässigkeit?
Kurzer Erfahrungsbericht:
Ich habe fünf Sensoren im Einsatz. Damit ich weiß, wann die jeweiligen Pflanzen gegossen werden müssen, habe ich mit einem Koubachi Sensor parallel gemessen, wann dieser nach Wasser schreit und dann den entsprechenden Wert am Xiaomi Flower Monitor (XFM) ermittelt.
Zum Thema
- Zuverlässigkeit: Ich lasse alle 7 Minuten das Skript zum Auslesen der Werte per AT-Befehl laufen. Dabei bekomme ich im Schnitt von jeder Pflanze pro Stunde mindestens 2 Rückmeldungen. Das ist für mich vollkommen ausreichend.. Damit bin ich beim Punkt
- Reichweite: Meine Wohnung ist nicht repräsentativ. In meiner Wohnung habe ich etliche WLAN Geräte; in unmittelbarer Umgebung sind 25 andere WLAN Netze (Hotels , Hotspots usw.). Da sich Bluetooth und WLAN 2,4ghz nicht so gut vertragen, ist das bei mir echt ein Problem. Selbst mit den G-Tags darf ich maximal 7 Meter vom Bluetooth Dongle entfernt sein, damit er den Tag noch erkennt.
Ich habe die XFM jetzt seit nem guten Monat laufen und ich kann wirklich sagen - für mich ist das optimal. Alle Pflanzen sind wohlauf, es war noch kein Batterie-Wechsel nötig (leider habe ich aber noch immer keine Lösung gefunden habe, den Batterie-Wert auszulesen. Die App gibt einen Wert aus, den ich bei keinem BLE handle finden konnte.. )
Ich bin gespannt, welche Erfahrungen Andere mit dem XFM machen..
vg
stoxx
Hallo
ich sitze jetzt schon seit sicherlich 8 Stunden daran, meinen angekommenen Xiaomi zum Laufen zu bekommen.
Bluetooth Modul hängt an rpi2. hcitool dev zeigt hci0=00:xx:xx:xx:xx
sudo hcitool lescan zeigt
C4:7C:xx:xx:xx:xx (unknown)
C4:7C:xx:xx:xx:xx Flower mate
Allerdings bekomme ich beim Ausführen des sudo gatttools und connect jeweils ein host is down (112)
Somit auch beim bash flower.sh ein "host is down (112)" (standard in) 1 : illegal character: M
Was mache ich falsch ?
fhem habe ich sogar (zum Testen) rootrechte gegeben. flower.sh ist chmod 755
Danke für die Hilfe
Jörg
gatttool -b <<MAC Adresse>> --char-read --handle=0x35
sudo braucht man nicht. Was bekommst Du als Ergebnis wenn Du als User auf dem FHEM Server das hier ein gibst?
Zitat von: CoolTux am 22 Oktober 2016, 17:55:32
gatttool -b <<MAC Adresse>> --char-read --handle=0x35
sudo braucht man nicht. Was bekommst Du als Ergebnis wenn Du als User auf dem FHEM Server das hier ein gibst?
Auch ohne sudo bekomme ich: "Host is down (112)"
Jörg
läuft noch etwas anderes?
Mach mal ein ps ax | grep hcitool
wenn da was auf taucht das blockiert das. Ist der Sensor zu testzwecken in der Nähe? Ist die MAC korrekt? Bitte noch mal mit hcitool prüfen.
Zitat von: CoolTux am 22 Oktober 2016, 18:23:40
läuft noch etwas anderes?
Mach mal ein ps ax | grep hcitool
wenn da was auf taucht das blockiert das. Ist der Sensor zu testzwecken in der Nähe? Ist die MAC korrekt? Bitte noch mal mit hcitool prüfen.
ps ax | grep hcitool
Ergebnis: 3054 pts/1 S+ 0:00 grep --color=auto hcitool
Sensor ca. 20cm vom BT-Dongle entfernt.
hcitool lecc C4:xx bringt: Connection handle 71 ==> Also MAC korrekt
Hilfe das ? was muss ich tun ?
Jörg
Scheint nichts weiter zu laufen.
Und meine anderen Fragen? Wie ist da der Status?
Zitat von: CoolTux am 22 Oktober 2016, 19:09:38
Scheint nichts weiter zu laufen.
Und meine anderen Fragen? Wie ist da der Status?
sudo hcitool dev bringt : devices hci0 00:1A:xx:xx:xx
sudo hcitool lescan bringt : C4:7C:xx:xx:xx:xx (unknown) , C4:7C:xx:xx:xx:xx Flower mate
sudo hcitool inq bringt : leer/nichts
sudo hcitool scan bringt : leer/nichts
sudo hcitool con bringt : Connections : leer/nichts
mach mal
gatttool -I
und dann gib mal ein
connect <mac>
Zitat von: CoolTux am 22 Oktober 2016, 20:55:56
mach mal
gatttool -I
und dann gib mal ein
connect <mac>
Rate mal........
connetcing .... connect error: Host is down (112)
[ ]C4:7C:8D:60:DA:7B {LE]>
Versuch erstmal mit der eigentlichen App eine Verbindung her zu stellen. Kann sein das das Teil defekt ist.
schaut tatsächlich nach einem defekt aus...
hast du das auch schon versucht..?
http://stackoverflow.com/questions/24853597/ble-gatttool-cannot-connect-even-though-device-is-discoverable-with-hcitool-lesc (http://stackoverflow.com/questions/24853597/ble-gatttool-cannot-connect-even-though-device-is-discoverable-with-hcitool-lesc)
vg stoxx
Zitat von: stoxx am 22 Oktober 2016, 21:40:06
schaut tatsächlich nach einem defekt aus...
hast du das auch schon versucht..?
http://stackoverflow.com/questions/24853597/ble-gatttool-cannot-connect-even-though-device-is-discoverable-with-hcitool-lesc (http://stackoverflow.com/questions/24853597/ble-gatttool-cannot-connect-even-though-device-is-discoverable-with-hcitool-lesc)
vg stoxx
Hallo,
habe ich auch schon ALLES ausprobiert.
Aber es könnte tatsächlich sein, dass da irgendwas defekt ist (obwohl erst gestern aus China a ngekommen).
Auch mit der MiHome APP bekomme ch keine connection. Über bluetooth habe ich flowermate ans Handy koppeln können - aber dann eben keine connection zur app bekommen.
==> sehr ärgerlich: 10€ für nichts.
Frage: wie häufig leuchtet denn bei euch das blaue Licht ?
ZitatAuch mit der MiHome APP bekomme ch keine connection.
Hmm, dann ist das Ding defekt. Reklamiere das, dann bekommst Du einen funktionierenden Sensor..
vg stoxx
Eine Verständnisfrage. Ich dachte Bluetooth kann immer nur eine Verbindung zu einem Gerät haben. Heißt das, dass hier die Verbindung hergestellt wird, die Daten abgefragt und danach die Verbindung wieder gelöst wird?
Können andere die Erfahrungen von
Zitat von: stoxx am 20 Oktober 2016, 18:27:12
Kurzer Erfahrungsbericht:
Ich habe fünf Sensoren im Einsatz. Damit ich weiß, wann die jeweiligen Pflanzen gegossen werden müssen, habe ich mit einem Koubachi Sensor parallel gemessen, wann dieser nach Wasser schreit und dann den entsprechenden Wert am Xiaomi Flower Monitor (XFM) ermittelt.
Zum Thema
- Zuverlässigkeit: Ich lasse alle 7 Minuten das Skript zum Auslesen der Werte per AT-Befehl laufen. Dabei bekomme ich im Schnitt von jeder Pflanze pro Stunde mindestens 2 Rückmeldungen. Das ist für mich vollkommen ausreichend.. Damit bin ich beim Punkt
- Reichweite: Meine Wohnung ist nicht repräsentativ. In meiner Wohnung habe ich etliche WLAN Geräte; in unmittelbarer Umgebung sind 25 andere WLAN Netze (Hotels , Hotspots usw.). Da sich Bluetooth und WLAN 2,4ghz nicht so gut vertragen, ist das bei mir echt ein Problem. Selbst mit den G-Tags darf ich maximal 7 Meter vom Bluetooth Dongle entfernt sein, damit er den Tag noch erkennt.
Ich habe die XFM jetzt seit nem guten Monat laufen und ich kann wirklich sagen - für mich ist das optimal. Alle Pflanzen sind wohlauf, es war noch kein Batterie-Wechsel nötig (leider habe ich aber noch immer keine Lösung gefunden habe, den Batterie-Wert auszulesen. Die App gibt einen Wert aus, den ich bei keinem BLE handle finden konnte.. )
Ich bin gespannt, welche Erfahrungen Andere mit dem XFM machen..
vg
stoxx
teilen und sind auch weiterhin zufrieden?
Zitat von: mi.ke am 04 Oktober 2016, 13:16:22
günstig gibts die Dinger hier (unter 10 €):
https://www.fasttech.com/product/5258000-authentic-xiaomi-mi-bluetooth-v4-1-smart-flower (https://www.fasttech.com/product/5258000-authentic-xiaomi-mi-bluetooth-v4-1-smart-flower)
Keine Mengenbeschränkung
Tach,
fünf Stück sind gestern gekommen, 20 Tage Lieferzeit, kein Zoll . . .
. . . muss dann mal ausprobieren.
Cheers
mi.ke
ZitatEine Verständnisfrage. Ich dachte Bluetooth kann immer nur eine Verbindung zu einem Gerät haben. Heißt das, dass hier die Verbindung hergestellt wird, die Daten abgefragt und danach die Verbindung wieder gelöst wird?
Das ist natürlich richtig. Die Sensoren werden per Skript
nacheinander abgefragt.
HAllo stoxx.
Ich hab Dein Script als .sh abgelegt und hab 755 als Rechte vergeben.
Beim ausführen des Scripts kommt folgender Fehler im Logfile:
sudo: no tty present and no askpass program specified
g00gle ergab, dass etwas mit den Rechten nicht stimmt, aber ich hab von Linux so gar keine Ahnung.
Könntest Du mir helfen oder eine Tip geben?
Danke im Voraus
mi.ke
ZitatBeim ausführen des Scripts kommt folgender Fehler im Logfile:
Wo und wie führst Du denn das Skript aus?
Probiere doch erst mal, ob Du das Skript in der Shell zum laufen bekommst.
Einfach in das Verzeichnis wechseln und per
./skriptname.sh
aufrufen.
vg stoxx
Ich habs versucht Schritt für Schritt auszuführen
sudo /usr/bin/gatttool -b C4:7C:xx:xx:xx:xx --char-read --handle=0x35
Ergebnis:
connection refused (111)
Scheint an dem gatttool zu liegen. Habe auch den Path mal mitgegeben , aber gleiches Ergebnis.
Ausgeführt in der Shell als root.
Hast Du noch eine Idee?
Also es liegt devinitiv an der Bluetooth config
Ich hab Bluez neu installiert, jetzt kann ich den hcitool scan als User "pi" ausführen, den hcitool lescan nur noch mit als root.
Mit sudo gatttool -I und dann einem connect <<MAC_Adr.>>
kommt immer und bei allen "Flower mate" Adressen das Ergebnis Connection refused (111)
4 Std alles mögliche ausprobiert, immer mit den gleichen Ergebnis.
Ich gebs auf, vielleicht sollte ich mir doch ein anderes Hobby suchen 8)
Zitat von: mi.ke am 27 Oktober 2016, 09:17:04
Also es liegt devinitiv an der Bluetooth config
Ich hab Bluez neu installiert, jetzt kann ich den hcitool scan als User "pi" ausführen, den hcitool lescan nur noch mit als root.
Mit sudo gatttool -I und dann einem connect <<MAC_Adr.>>
kommt immer und bei allen "Flower mate" Adressen das Ergebnis Connection refused (111)
4 Std alles mögliche ausprobiert, immer mit den gleichen Ergebnis.
Ich gebs auf, vielleicht sollte ich mir doch ein anderes Hobby suchen 8)
Bei Interesse Deine Sensoren wieder los zu werden würde ich sie gerne nehmen. Brauche noch Zeug zum Testen vom Modul.
an einem hätte ich ebenfalls Interesse
vg
joerg
Würde auch einen nehmen.
Und hat jemand die Dinger mal draußen im Regen getestet? Meint ihr das geht, oder sie halten das nicht aus?
Hallo,
ich hatte auch einige Schwierigkeiten. Hier habe ich die Lösung für meine RPi mit Wheezy gefunden: http://stackoverflow.com/questions/24853597/ble-gatttool-cannot-connect-even-though-device-is-discoverable-with-hcitool-lesc
Grüße Jörg
Zitat4 Std alles mögliche ausprobiert, immer mit den gleichen Ergebnis.
Zwei Seiten zurückblättern, da hatte jemand genau das gleiche Problem und lösen können.. Hast Du wirklich das auch schon ausprobiert?
https://forum.fhem.de/index.php/topic,57787.msg497815.html#msg497815 (https://forum.fhem.de/index.php/topic,57787.msg497815.html#msg497815)
grüße
stoxx
So habe meinen nun endlich auch bekommen...
...bzw. eher endlich Zeit gefunden ihn mal in Betrieb zu nehmen.
Aktuell testweise mal unter UbuntuMate auf einem PI3.
Scheint zu laufen, allerdings momentan auch testweise nur mit "echo-Ausgaben" statt der "setreadings"...
Blaues Licht blinkt bei mir, wenn ich das script starte, also Verbindung aufgebaut wird und Daten abgefragt werden...
...und mal kurz nach dem Batterieeinlegen.
Mit dem Handy hatte ich zunächst keinen Erfolg und dachte auch schon (nach dem Lesen hier), dass er defekt sei.
Achja: unter UbuntuMate läuft das script auch ohne 'sudo' :-)
Also statt "sudo gattool" nur "gattool"...
Habe ihn dann probehalber mal in ein Wasserglas gestellt um zu sehen, ob er auch wirklich tut...
...und: Moisture 100 :-)
Vorher an der Luft: 0
Dann habe ich ihn einen Raum weiter gestellt, also ca. 6-8m aber durch 2 Wände, um das mit den Lux zu testen...
...da bekam ich plötzlich: connect error: Connection refused (111)
Wieder zurück auf den alten Platz, also eher so 6m und keine Wand (also Türe offen) und siehe da: funktioniert wieder :-)
Werde also wohl einen PI neben das Fenster stellen und dann per fhem2fhem o.ä. die Daten an mein Hauptsystem schicken...
...und die Feuchtigkeitsmesser dann in den Balkontrog...
Aber erst nächsten Frühling... ;-)
Gruß, Joachim
So, jetzt hab ich's auch unter PI3 Jessie laufen.
Jessie-Image auf SD, gebootet, update/upgrade und raspi-config (timezone, Tastatur, ...) und "sudo apt-get install bc" und das script (immer noch: "echo" Ausgaben statt setreading) läuft auch hier...
...ebenfalls kein 'sudo' notwendig...
So, dann werde ich wohl noch ein paar besetllen und mich mal um: Daten vom "Fensterbrett-PI" zum "FHEM-PI" bringen kümmern ;-)
Gruß, Joachim
Und gleich noch ein paar Entfernungstests gemacht:
komme auf ca. 11m (mehr geht grad nicht), allerdings mit "Semi-Sichtverbindung", also ja Wände aber alle Türen auf...
...aber bekomme nicht immer Daten, würde mir aber bei Abfrage alle 5-10min reichen, da können auch mal 1-2 nicht kommen...
Bei Türen zu wird's schon hakelig...
Ich denke mal gefühlt geht's so 8-10m ganz passabel.
Werde aber wohl trotzdem die "PI-vor-Fenster-Variante" fahren...
...dann sind es max. 6m
Gruß, Joachim
Zitat von: mi.ke am 27 Oktober 2016, 09:17:04
Also es liegt devinitiv an der Bluetooth config
Ich hab Bluez neu installiert, jetzt kann ich den hcitool scan als User "pi" ausführen, den hcitool lescan nur noch mit als root.
Mit sudo gatttool -I und dann einem connect <<MAC_Adr.>>
kommt immer und bei allen "Flower mate" Adressen das Ergebnis Connection refused (111)
4 Std alles mögliche ausprobiert, immer mit den gleichen Ergebnis.
Ich gebs auf, vielleicht sollte ich mir doch ein anderes Hobby suchen 8)
Nicht aufgeben !!
Bin auch schon netto über 10 Stunden dran. Habe zumindest über putty den Flower mate angechlossen bekommen.
Letztlich liegt es am Bluetooth Low Energy Problem
Einige Tips stehen hier ja in den vorherigen threads:
ABER bitte auch solche "Kleinigkeiten:
sudo btmgmt le on
sudo btmgmt bredr off
(vorher btmgmt verfügbar machen - steht in einigen der Folgelinks)
User pi und fhem in Gruppe ip und bluetooth aufnehmen - ganz wichtig überprüfen: cat /etc/group
Meine Linkliste (einiges doppelt - aber jeder Hinweis hat irgendwie geholfen):
http://stackoverflow.com/questions/24853597/ble-gatttool-cannot-connect-even-though-device-is-discoverable-with-hcitool-lesc (http://stackoverflow.com/questions/24853597/ble-gatttool-cannot-connect-even-though-device-is-discoverable-with-hcitool-lesc)
https://forum.arduino.cc/index.php?topic=377587.0 (https://forum.arduino.cc/index.php?topic=377587.0)
https://urbanjack.wordpress.com/2014/06/05/how-to-set-bluez-into-ble-or-le-only-mode-ibeacon/ (https://urbanjack.wordpress.com/2014/06/05/how-to-set-bluez-into-ble-or-le-only-mode-ibeacon/)
https://www.blogging-it.com/bluetooth-adapter-dongle-unter-raspbian-einrichten-und-verbindung-pairing-herstellen/raspberry-pi/betriebssysteme-und-software.html (https://www.blogging-it.com/bluetooth-adapter-dongle-unter-raspbian-einrichten-und-verbindung-pairing-herstellen/raspberry-pi/betriebssysteme-und-software.html)
https://learn.adafruit.com/install-bluez-on-the-raspberry-pi/installation (https://learn.adafruit.com/install-bluez-on-the-raspberry-pi/installation)
https://www.open-homeautomation.com/de/2016/08/23/reverse-engineering-the-mi-plant-sensor/ (https://www.open-homeautomation.com/de/2016/08/23/reverse-engineering-the-mi-plant-sensor/)
Viel Erfolg
Jörg
P.S. habe ihn auch noch nicht laufen in fhem. Precence local-bluetooth zeigt immer absent, obwohl eben gatttool... in putty sogar Werte anzeigt.
PPS: bekomme einfach keine Werte nach fhem in plant1
define XIAOMI_1 PRESENCE local-bluetooth C4:7C:8D:60:xx:xx 10 60
attr XIAOMI_1 room 95_Flower
Ist immer absent. Warum ???
An den Rechten kann es nicht liegen, da analoges Vorgehen/cfg für mein Handy funktioniert (present)
Die MAC Adrese des XIAOMI habe ich über hcitool lescan. Dort wird das Teil gefunden und ich konnte es über hcitool lecc verbinden.
Danke
Jörg
Es gibt einen Unterschied zu bt und btle. Die Teile machen le.
Mach mal folgendes. Gib mal in einer Linuxshell folgendes ein, als root.
hcitool scan
Hier sollte das Teil nicht erscheinen. Und dann
hcitool lescan
Hier sollten die Teile erscheinen.
Zitat von: jnewton957 am 30 Oktober 2016, 07:33:14
ABER bitte auch solche "Kleinigkeiten:
sudo btmgmt le on
sudo btmgmt bredr off
sudo btmgmt bredr off
funktioniert nur, solange der BlueTooth-Stick noch nicht eingeschaltet ist. Am Besten ein Startscript anlegen, oder das Fhem Script erweitern, in dem folgendes gemacht wird:
sudo hciconfig hci0 down
sudo btmgmt le on
sudo btmgmt bredr off
sudo hciconfig hci0 up
Grüße Jörg
Hallo,
ich komme weiter und habe zumindet unter putty schon mal Werte.
Der risen Schritt anch vorne was das Abtippen des skriptes von stoxx weil dort im coding Zeilenumbrüche \r drin sind. Die führen zu Fehlern in der Ausführung des scriptes. (illigal character)
Ich habe also das script abgetippt und jeweils ein echo "Temp" $stringT vor jeder perl Zeile eingefügt.
Der Flower_mate steht in einem Glas Wasser und ich erhalte Werte:
Die Werte:
Temp 196 entspricht 19,6 Grad Celsius
Lux 203
Moisture 86 entspricht 86% (obwohl es 100 sein müssten, weil der Sensor im Wasser steht)
Fertility 511
Jörg
Hallo,
ich habe das bash-Script mal etwas überarbeitet:
#!/bin/bash
bluetoothmac="C4:7C:8D:61:B2:72"
fhem_device="Plant1"
stringA=$(/usr/local/bin/gatttool -b $bluetoothmac --char-read --handle=0x35)
gaterror=$?
if [ $gaterror -ne 0 ]; then
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool Fehler: $gaterror"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device state error"
sudo hciconfig hci0 down
sudo btmgmt le on
sudo btmgmt bredr off
sudo hciconfig hci0 up
if [ $? -ne 0 ]; then
sudo hciconfig hci0 up
fi
else
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool $stringA"
stringT=${stringA:36:2}${stringA:33:2}
stringT=$(echo "$stringT" | tr a-f A-F)
stringT=$(echo "ibase=16; $stringT" | bc)
perl /opt/fhem/fhem.pl 7072 "{fhem('setreading $fhem_device Temp ' . $stringT/10)}"
stringL=${stringA:45:2}${stringA:42:2}
stringL=$(echo "$stringL" | tr a-f A-F)
stringL=$(echo "ibase=16; $stringL" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Lux $stringL"
stringM=${stringA:54:2}
stringM=$(echo "$stringM" | tr a-f A-F)
stringM=$(echo "ibase=16; $stringM" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Moisture $stringM"
stringF=${stringA:60:2}${stringA:57:2}
stringF=$(echo "$stringF" | tr a-f A-F)
stringF=$(echo "ibase=16; $stringF" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Fertility $stringF"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device state done"
fi
exit
PS: Was die Werte bedeuten wurde schon im Thread erläutert.
Grüße Jörg
Zitat von: JoWiemann am 30 Oktober 2016, 12:22:33
PS: Was die Werte bedeuten wurde schon im Thread erläutert.
Nicht was die Werte "bedeuten" (temp, Helligkeit, Feuchtigkeit, Dünger) -, sondern was sie aussagen.
Ab welchem Moisture soll man giessen bzw. es ist zu trocken?
Ab welchem Fertility soll man düngen ?
Grüße
Jörg
Zitat von: jnewton957 am 30 Oktober 2016, 12:34:55
Nicht was die Werte "bedeuten" (temp, Helligkeit, Feuchtigkeit, Dünger) -, sondern was sie aussagen.
Ab welchem Moisture soll man giessen bzw. es ist zu trocken?
Ab welchem Fertility soll man düngen ?
Da müssen wir wohl die App befrage. Die soll eine Pflanzendatenbank haben. Habe es allerdings noch nicht ausprobiert.
Grüße Jörg
Ich habe mal weiter gesurft.
In einigen Foren wird Fertility durch conductivity = Leitfähigkeit ersetzt.
Interessant ist auch handle =0x38 da hier der Batteriestatus drin ist. hex 64 = 100%
Wassermangel ist demnach Moisture < 25
Jörg
OK, habe das Script erweitert:
#!/bin/bash
bluetoothmac="C4:7C:8D:61:B2:72"
fhem_device="Plant1"
stringA=$(/usr/local/bin/gatttool -b $bluetoothmac --char-read --handle=0x35 2> errFile)
stringB=$(/usr/local/bin/gatttool -b $bluetoothmac --char-read --handle=0x38 2> errFile)
gaterror=$?
ERR=$(<errFile)
if [ $gaterror -ne 0 ]; then
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool Fehler: $ERR"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device state error"
sudo hciconfig hci0 down
sudo btmgmt le on
sudo btmgmt bredr off
sudo hciconfig hci0 up
if [ $? -ne 0 ]; then
sudo hciconfig hci0 up
fi
else
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool_35 $stringA"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool_38 $stringB"
stringT=${stringA:36:2}${stringA:33:2}
stringT=$(echo "$stringT" | tr a-f A-F)
stringT=$(echo "ibase=16; $stringT" | bc)
perl /opt/fhem/fhem.pl 7072 "{fhem('setreading $fhem_device Temp ' . $stringT/10)}"
stringL=${stringA:45:2}${stringA:42:2}
stringL=$(echo "$stringL" | tr a-f A-F)
stringL=$(echo "ibase=16; $stringL" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Lux $stringL"
stringM=${stringA:54:2}
stringM=$(echo "$stringM" | tr a-f A-F)
stringM=$(echo "ibase=16; $stringM" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Moisture $stringM"
stringF=${stringA:60:2}${stringA:57:2}
stringF=$(echo "$stringF" | tr a-f A-F)
stringF=$(echo "ibase=16; $stringF" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Fertility $stringF"
stringV=${stringB:33:2}
stringV=$(echo "$stringV" | tr a-f A-F)
stringV=$(echo "ibase=16; $stringV" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Battery $stringV"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device state done"
fi
exit
Grüße Jörg
Hallo,
ich habe es endlich auch geschafft.
Script läuft, Daten sind in FHEM.
Für alle, die dann am Ende noch Probleme haben, die Daten nach FHEM zu bekommen. Bitte prüfen, ob ihr 7072 oder 7073 bei tPortLocal telnet habt. Bei mir hat eben 7072 ein passwort wegen normalen telnet port und 7073 wegen local telnet eben nicht. Daher bei mir: perl /opt/fhem/fhem.pl 7073 "setreading Plant1
Sonntag fast rum.
Viel Erfolg für die Anderen
Jörg
Hallo,
ich habe das Script noch ein zweites mal gepimmt.
#!/bin/bash
fhem_telnet_port=7072
fhem_device="Plant1"
fhem_dir="/opt/fhem"
bluetoothmac="C4:7C:8D:61:B2:72"
function Plantdecode {
funcStr=$1
funcStr=$(echo "$funcStr" | tr a-f A-F)
funcStr=$(echo "ibase=16; $funcStr" | bc)
echo "$funcStr"
}
perl /opt/fhem/fhem.pl $fhem_telnet_port "setreading $fhem_device state get data from handle 0x35"
stringA=$(/usr/local/bin/gatttool -b $bluetoothmac --char-read --handle=0x35 2> errFile)
perl /opt/fhem/fhem.pl $fhem_telnet_port "setreading $fhem_device state get data from handle 0x38"
stringB=$(/usr/local/bin/gatttool -b $bluetoothmac --char-read --handle=0x38 2> errFile)
gaterror=$?
repl="'"
if [ $gaterror -ne 0 ]; then
ERR=$(<errFile)
ERR=${ERR//$repl/_}
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{Log3 '$fhem_device', 3, 'gatttool: $ERR'}"
perl /opt/fhem/fhem.pl $fhem_telnet_port "setreading $fhem_device gattool Fehler: $ERR"
perl /opt/fhem/fhem.pl $fhem_telnet_port "setreading $fhem_device state error"
perl /opt/fhem/fhem.pl $fhem_telnet_port "setreading $fhem_device gattool_35 ---"
perl /opt/fhem/fhem.pl $fhem_telnet_port "setreading $fhem_device gattool_38 ---"
sudo hciconfig hci0 down 2> errFile
if [ $? -ne 0 ]; then
ERR=$(<errFile)
ERR=${ERR//$repl/_}
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{Log3 '$fhem_device', 3, 'hciconfig: $ERR'}"
exit
fi
sudo btmgmt le on 2> errFile
if [ $? -ne 0 ]; then
ERR=$(<errFile)
ERR=${ERR//$repl/_}
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{Log3 '$fhem_device', 3, 'btmgmt: $ERR'}"
exit
fi
sudo btmgmt bredr off 2> errFile
if [ $? -ne 0 ]; then
ERR=$(<errFile)
ERR=${ERR//$repl/_}
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{Log3 '$fhem_device', 3, 'btmgmt: $ERR'}"
exit
fi
sudo hciconfig hci0 up 2> errFile
if [ $? -ne 0 ]; then
ERR=$(<errFile)
ERR=${ERR//$repl/_}
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{Log3 '$fhem_device', 3, 'hciconfig: $ERR'}"
sudo hciconfig hci0 up 2> errFile
if [ $? -ne 0 ]; then
ERR=$(<errFile)
ERR=${ERR//$repl/_}
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{Log3 '$fhem_device', 3, 'hciconfig: $ERR'}"
fi
fi
else
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device gattool ---"
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device gattool_35 $stringA"
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device gattool_38 $stringB"
string=$(Plantdecode ${stringA:36:2}${stringA:33:2})
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{fhem('setreading $fhem_device Temp ' . $string/10)}"
string=$(Plantdecode ${stringA:45:2}${stringA:42:2})
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device Lux $string"
string=$(Plantdecode ${stringA:54:2})
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device Moisture $string"
string=$(Plantdecode ${stringA:60:2}${stringA:57:2})
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device Fertility $string"
string=$(Plantdecode ${stringB:33:2})
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device Battery $string"
string30="30"
stringF1=${stringB:39:2}
stringF1=$((stringF1-string30))
stringF2=${stringB:45:2}
stringF2=$((stringF2-string30))
stringF3=${stringB:51:2}
stringF3=$((stringF3-string30))
string="$stringF1"."$stringF2"."$stringF3"
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device Firmware $string"
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "setreading $fhem_device state done"
fi
Exit
Grüße Jörg
Besteht noch Interesse an einem Modul? Dann würde ich vorerst eines zusammen stellen bis das BT Framework fertig ist.
Ausserdem brauche ich dann mal ein Telegramm von jemanden.
Also einfach ein
gatttool -b $bluetoothmac --char-read --handle=0x35
gatttool -b $bluetoothmac --char-read --handle=0x38
Machen und Ergebnis hier posten.
Zitat von: JoWiemann am 30 Oktober 2016, 14:22:01
OK, habe das Script erweitert:
#!/bin/bash
bluetoothmac="C4:7C:8D:61:B2:72"
fhem_device="Plant1"
stringA=$(/usr/local/bin/gatttool -b $bluetoothmac --char-read --handle=0x35 2> errFile)
stringB=$(/usr/local/bin/gatttool -b $bluetoothmac --char-read --handle=0x38 2> errFile)
gaterror=$?
ERR=$(<errFile)
if [ $gaterror -ne 0 ]; then
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool Fehler: $ERR"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device state error"
sudo hciconfig hci0 down
sudo btmgmt le on
sudo btmgmt bredr off
sudo hciconfig hci0 up
if [ $? -ne 0 ]; then
sudo hciconfig hci0 up
fi
else
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool_35 $stringA"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device gattool_38 $stringB"
stringT=${stringA:36:2}${stringA:33:2}
stringT=$(echo "$stringT" | tr a-f A-F)
stringT=$(echo "ibase=16; $stringT" | bc)
perl /opt/fhem/fhem.pl 7072 "{fhem('setreading $fhem_device Temp ' . $stringT/10)}"
stringL=${stringA:45:2}${stringA:42:2}
stringL=$(echo "$stringL" | tr a-f A-F)
stringL=$(echo "ibase=16; $stringL" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Lux $stringL"
stringM=${stringA:54:2}
stringM=$(echo "$stringM" | tr a-f A-F)
stringM=$(echo "ibase=16; $stringM" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Moisture $stringM"
stringF=${stringA:60:2}${stringA:57:2}
stringF=$(echo "$stringF" | tr a-f A-F)
stringF=$(echo "ibase=16; $stringF" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Fertility $stringF"
stringV=${stringB:33:2}
stringV=$(echo "$stringV" | tr a-f A-F)
stringV=$(echo "ibase=16; $stringV" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device Battery $stringV"
perl /opt/fhem/fhem.pl 7072 "setreading $fhem_device state done"
fi
exit
Grüße Jörg
Wo kommt eigentlich auf einmal die 0x38er Adresse her?
Zitat von: CoolTux am 31 Oktober 2016, 09:19:36
Wo kommt eigentlich auf einmal die 0x38er Adresse her?
jnewton957 Hatte dazu etwas geschrieben:
Zitat von: jnewton957 am 30 Oktober 2016, 13:25:13
Interessant ist auch handle =0x38 da hier der Batteriestatus drin ist. hex 64 = 100%
Ah super. Dann bitte noch ein Telegramm damit ich was zum testen habe.
Zitat von: JoWiemann am 30 Oktober 2016, 19:36:53
Hallo,
ich habe das Script noch ein zweites mal gepimmt.
Code....
Grüße Jörg
Hallo Jörg, habe das gerade nochmal mit dieser Version versucht, die klappt so aber aufgrund der folgenden zwei Punkte nicht:
Das gatttool steht im path und sollte daher ohne den kompletten Pfad angegeben sein, da er den Befehl (zumindest bei mir) sonst aufgrund eines "File not Found" Fehlers abbricht.
Ganz am Ende das "Exit" muss kleingeschrieben werden ;)
EDIT:
Was ich noch festgestellt habe ist, dass seit dem "errFile" ein Permission denied Fehler auftaucht und die beiden neusten Scripte deshalb nicht laufen. Worauf will er in diesem Moment zugreifen? Bin da nicht so ganz draus schlau geworden wohin er das schreiben will. chmod 777 für das Verzeichnis in dem das Script liegt hat es gelöst ;) Ich weiß, 777 ist nicht das sinnigste, aber da liegen nur Scripte, die fhem ausführen können soll.
Aus der ssh-Verbindung heraus läuft es bei mir nun, dann will ich mich mal auf der FHEM Seite daran versuchen.
EDIT2: Läuft nun alles.
Berechtigungen, die benötigt werden: (sudo nano /etc/sudoers)
fhem ALL=NOPASSWD: /opt/fhem/SCRIPTS/
Dadurch hat der user fhem in diesem Verzeichnis root-Rechte, kann die Scripte ausführen und auch Dateien erstellen.
Da hat die Rechtschreibkorrektur beim exit zugeschlagen. Den Pfad zum gatttool brauche ich bei mir. Aus Fhem heraus findet das Script das gatttool nicht. Und ich hatte bisher keine Zeit die Ursache zu suchen, denn auf der Konsole funktioniert es.
Grüße Jörg
Gesendet von iPhone mit Tapatalk
Moin.
Da ich ja mit einer Schmach gegen die Maschine nicht zurechtkomme . . . ich habs auch hinbekommen.
Allerdings musste ich Wheezy runterwerfen und neu Jessy installieren.
Dann war es allerdings kein Problem mehr.
Ich nehmen an das es an der BlueZ Version lag.
Die "alte", nicht funktionierende war 4.99, die jetztige ist 5.23 (bluetoothd -v)
Vielen Dank für die Unterstützung
greetz
MI/KE
Ich habe gerade ebend meinen Sensor eingerichtet.
Hat auch auf Anhieb mit den Beiden Änderungen geklappt.
Muss ich das Script nun selber ständig aufrufen, oder erfolgt die Abfrage zyklisch ohne mein Zutun?
Bitte um Entschuldigung, falls das eine zu doofe Frage ist, aber ich habe keinerlei Kenntnisse in puncto Bashscript.
Falls ich es ständig anstossen muss - wie bitte mache ich das?
EDIT:
Hat sich erledigt, ich versuche cronjob
Hat jemand Erfahrung wie es bei dem Sensor mit der Messtechnik aussieht. Gibt ja häufig das Problem gerade bei günstigen Sensoren, dass sie über die Leitfähigkeit messen und dabei die Erde mit Schwermetallen kontaminieren und sich selbst langsam abnutzen? Hat jemand hier Erfahrungen?
Grüße
Fabian
Habe jetzt hier auch 2 davon liegen, allerdings noch kein Bluetooth-Dongle für den Raspi.
Finden lässt er sich nicht mit einem iPhone5s, aber mit einem Android Tablet konnte ich connecten.
Kennt jemand eine App für das Teil?
Ob es den Post noch ein viertes Mal geben wird? Taptalk lässt grüßen :D
Fail.... naja, da ist mein Beitrag dahin, die Tapatalk app hatte nen Hänger....
habe es nun auch zum laufen bekommen. Es gibt zwei Apps. Eine von dem Entwickler Beijing Xiaomi..., die NICHT funktioniert. Und eine die unter "Flower Power" als 1. Ergebnis kommt und einen mit Chinesischen Schriftzeichen erschlägt. Die geht. Zumindest bei einem der beiden Sensoren...
Edit: Nachdem der eine nun mit der App läuft klappts im FHEM nicht mehr, da beim Update auf die Version 2.6.6, das zwingend bei der App erforderlich war anscheinend etwas geändert wurde und er den 35er wert nun nicht mehr direkt rausrückt.
Habe da auch schon was gefunden, dass ich noch testen müsste: https://wiki.hackerspace.pl/projects:xiaomi-flora
Gruß
Gesendet von iPhone mit Tapatalk
Zitat von: Invers am 06 November 2016, 21:03:13
Muss ich das Script nun selber ständig aufrufen, oder erfolgt die Abfrage zyklisch ohne mein Zutun?
Bitte um Entschuldigung, falls das eine zu doofe Frage ist, aber ich habe keinerlei Kenntnisse in puncto Bashscript.
Falls ich es ständig anstossen muss - wie bitte mache ich das?
Du kannst das Script mit
at aufrufen
z.B. alle 10min.
define XXXX at +*00:10 {system('sudo ./FHEM/name_des_scripts.sh&');;}
cheers
mi.ke
Oder mittels DOIF ;)
DOIF ([+00:10])
({system('sudo ./FHEM/name_des_scripts.sh&');;})
Gesendet von iPhone mit Tapatalk
Also entweder habe ich es übersehen oder es hat immer noch keiner mal ein Telegramm hier gepostet
Bitte mal ein
gatttool -b MAC --char-read -a 0x35
machen und den Output hier posten.
Das Modul ist ansonsten schon seit Tagen fertig.
@mi.ke und Hagenuck1
Danke für die Tipps. Ich hatte es aber bereits, wie angekündigt, per cron geregelt. Funktioniert wunderbar.
Dennoch habe ich mir eure Lösungen notiert, man kann ja nie wissen......
@CoolTux
gatttool -b MAC --char-read -a 0x35
erzeugt bei mir :
Characteristic value/descriptor: cc 00 00 84 00 00 00 15 0e 01 00 00 00 00 00 00
Super vielen lieben Dank. Damit kann ich dann denke fertig machen.
Zitat von: CoolTux am 09 November 2016, 09:58:21
Super vielen lieben Dank. Damit kann ich dann denke fertig machen.
Bedenke bitte meine Nachricht wegen der Firmware 2.6.6 da diese mit dem Script hier nicht abrufbar sind.
Gesendet von iPhone mit Tapatalk
Geht es denn generell? Anderes char?
Steht in dem Link von mir oben. Er braucht vorher noch ne andere Abfrage und gibt dann über die 35 wohl den Wert wie gehabt aus. So hatte ich das gestern in der schnelle verstanden.
Sowas schreibt er da:
0x0036 - writing 0x0100 to this handle will subscribe you to sensor value notifications
Gesendet von iPhone mit Tapatalk
Ok schaue ich mir an. Wir arbeiten zwar nicht mit Notifications aber ich lese mal.
Ich biete mich auch gerne zum testen des Moduls mit meinen beiden Sensoren 2.6.2 & 2.6.6 an ;)
Gesendet von iPhone mit Tapatalk
Sehr gut. Danke. Melde mich dann.
Mein erster Xiaomi ist gestern auch gekommen, wie gesagt, wenn ich das Modul bekomme versuche ich gleich auch eine Version für das Grill-Thermometer zu bauen.
Kann mir mal bitte jemand den Zusammenhang zwischen dem hier
string=$(Plantdecode ${stringA:36:2}${stringA:33:2})
und dem String
Characteristic value/descriptor: cc 00 00 84 00 00 00 15 0e 01 00 00 00 00 00 00
erklären.
Ich dachte erst ab Position 36, 2 Positionen ergibt mein Hex für Temp. Passt aber nicht
Hi CoolTux,
was passt denn nicht?
Man muss den Ergebniswert am Schluss noch durch 10 teilen, dann kommt die Temperatur raus..
00cc = 204
204:10=20,4 Grad
Grüße
Stoxx
Das ist der Code für die Temperatur
string=$(Plantdecode ${stringA:36:2}${stringA:33:2})
perl "$fhem_dir"/fhem.pl $fhem_telnet_port "{fhem('setreading $fhem_device Temp ' . $string/10)}"
Das mit /10 ist ja ok. Ich versuche zu verstehen was das {stringA:36:2}${stringA:33:2} genau bedeutet.
stringA ist wohl
Characteristic value/descriptor: cc 00 00 84 00 00 00 15 0e 01 00 00 00 00 00 00
ok und nun sind ab position 36 2 positionen zu nehmen. Das wäre wenn man mit 0 anfängt genau zwischen den beiden C's oder wenn man mit 1 Anfangt zu zählen genau nach den beiden C's wo genau nimmst Du die zwei nullen vor den c's her? Ich versuche nur das zu verstehen.
Zitat{stringA:36:2}${stringA:33:2}
bedeutet:
Zwei Stellen angefangen bei 1 (natürlich inkl. Leerstellen) nach der 36 . Stelle =00
Zwei Stellen nach der 33. Stelle =cc
Macht zusammen 00cc
Zitat von: CoolTux am 09 November 2016, 09:33:42
Also entweder habe ich es übersehen oder es hat immer noch keiner mal ein Telegramm hier gepostet
Bitte mal ein
gatttool -b MAC --char-read -a 0x35
machen und den Output hier posten.
Das Modul ist ansonsten schon seit Tagen fertig.
Bringt bei mir:
Characteristic value/descriptor: cb 00 00 00 00 00 00 06 03 00 00 00 00 00 00 00
So ich habe mal eine erste Version hier. Die ist für den Sensor mit der älteren Firmware.
Bitte ins Verzeichnis FHEM/ kopieren und die Rechte anpassen. Danach ein reload 74_XiaomiFlowerSens machen in der Commandline von FHEMWEB.
define Blume1 XiaomiFlowerSens <BTMAC>
Bitte stellt den verbose auf 5 und dann mal ein set statusRequest machen bitte.
Ich brauche dann den Logteil und ein list vom Device.
Danke
ANHANG WURDE ENTFERNT
Danke für das Modul.
Hier das Ergebnis (hat funktioniert).
2016.11.10 09:20:20 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.10 09:20:20 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.10 09:20:22 1: PERL WARNING: Hexadecimal number > 0xffffffff non-portable at ./FHEM/74_XiaomiFlowerSens.pm line 267.
2016.11.10 09:20:22 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.10 09:20:22 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Firmware ist
2.6.2
Ich kann nicht sagen, ob die alt oder neu ist.
Was genau heißt hat funktioniert?
Gib mal bitte ein list vom Device. Glaube nicht das alles funktioniert hat, zumindest die Temperatur dürfte nicht stimmen.
Aber fast. Scheint das Komma zu fehlen.
Aber du hast Recht, ich hab mich so gefreut, dass ich alle Werte gar nicht beachtet hatte.
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 5803
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.0.1
Readings:
2016-11-10 09:27:18 fertility 1
2016-11-10 09:27:18 lux 19
2016-11-10 09:27:18 moisture 21
2016-11-10 09:19:38 state initialized
2016-11-10 09:27:18 temperature 204
Helper:
Attributes:
room FlowerSens
verbose 5
EDIT: fertility sollte bei 282 stehen.
Super, ich danke Dir. Nun kann ich weiter machen.
Melde mich.
Hier nun die verbesserte Version. Sollte nun alles soweit passen.
Bitte immer log und list hier posten. Danke
ANHANG WURDE ENTFERNT
Kann bitte noch jemand ein
gatttool -b MAC --char-read -a 0x38
Machen und hier Posten. Danke
Danke, nun passt es aber wirklich.
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 5803
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.1
Readings:
2016-11-10 12:08:49 fertility 284
2016-11-10 12:08:49 lux 417
2016-11-10 12:08:49 moisture 21
2016-11-10 09:19:38 state initialized
2016-11-10 12:08:49 temperature 20.2
Helper:
Attributes:
room FlowerSens
verbose 5
2016.11.10 12:12:14 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.10 12:12:14 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.10 12:12:18 1: PERL WARNING: Hexadecimal number > 0xffffffff non-portable at ./FHEM/74_XiaomiFlowerSens.pm line 267.
2016.11.10 12:12:18 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.10 12:12:19 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
Wunsch: Wäre es möglich, eine automatische Abfrage einzubasteln mit Interval als Attribut, oder so?
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
Ist das die 0x38 ? Dann danke.
Interval gibt es schon ist nur noch deaktiviert nach einem define.
Mach mal ein attr Interval und trage da 1800 ein. Dann hast das Interval. Danach Interval wieder löschen dann hast fest 3600 drin.
Zitat von: CoolTux am 10 November 2016, 11:32:39
Kann bitte noch jemand ein
gatttool -b MAC --char-read -a 0x38
Machen und hier Posten. Danke
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
Wäre möglich in das Modul noch den Batteriestatus einzubinden?
Sonst richtig geil..Vielen Dank
Ist schon drin wird nur falsch ausgelesen. Deswegen ja die 0x38
Das mache ich heute Abend inklusive der Firmware auslesen. Dann gebe ich auch Interval frei.
Grüße
ZitatInterval gibt es schon
Du programmierst ja schneller, als ich wünschen kann. Danke.
So nun sollte eigentlich alles zu sehen sein. Achtet mal bitte auf die Readings Firmware und Battery.
Stündlicher Timer ist default aktiv.
Bitte ein kompletten shutdown restart von FHEM machen.
ANHANG WURDE ENTFERNT
Soweit ist das Modul schon super.
Nur das Firmware Reading sieht etwas seltsam aus:
Internals:
BTMAC C4:7C:8D:61:87:DB
DEF C4:7C:8D:61:87:DB
INTERVAL 3600
NAME Pflanze1
NR 37
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.19
Readings:
2016-11-10 19:46:47 fertility 63
2016-11-10 19:46:47 firmware -30.-30.-30
2016-11-10 19:46:47 lux 69
2016-11-10 19:46:47 moisture 15
2016-11-10 19:46:31 state initialized
2016-11-10 19:46:47 temperature 18.8
Helper:
Attributes:
interval 3600
room FlowerSens
Vielen Dank für das Modul.
Gruß Thomas
Das sieht in der Tat sehr merkwürdig aus. Das bekommen wir aber noch hin. Das interval kannst du übrigens löschen, 3600 sind per default. Den aktuellen gültigen interval Wert siehst Du im INTERNAL INTERVAL.
Grüße
Firmware sehe ich NUR UM LIST, aber fehlerhaft. Trotzdem besten Dank, da ja der Rest prima funktioniert.
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.19
Readings:
2016-11-10 20:07:42 fertility 282
2016-11-10 20:07:42 firmware -30.-30.-30
2016-11-10 20:07:42 lux 3
2016-11-10 20:07:42 moisture 21
2016-11-10 20:06:04 state initialized
2016-11-10 20:07:42 temperature 20.7
Helper:
Attributes:
group Pflanzen
room FlowerSens,Wohnzimmer
verbose 5
nicht mal mit dem aktuellen Modul? Kannst mal im Log schauen ob es da was gab.
2016.11.10 20:07:40 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.10 20:07:40 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.10 20:07:42 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.10 20:07:42 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
EDIT:
Jetzt gerade ist das Reading gekommen. Ich sehe es also auch. Scheint vielleicht am Sensor zu liegen? Mit meiner Cron hat auch nciht immer alles geklappt.
EDIT 2:
Habe nmun noch mehrmals probiert, die Anzeige klappt jetzt zuverlässig. Unerklärlich, aber wahr. Meine Frau ist Zeuge. Lacht.
Kannst mal bitte ein list machen. Ich habe das mal Codemäßig nachgestellt was ich gemacht habe und da sollte es eigentlich super klappen und entsprechend zu mindest bei Dir 2.6.2 anzeigen.
Guten Abend ;)
So schnell wie du das Modul umgesetzt hast kann man ja gar nicht testen, vielen dank dafür.
Du hattest ja geschrieben "für die alte Version" mit der funktioniert es bis auf die Firmware alles :)
Firmware wird übrigens bei beiden momentan auch als "-30.-30.-30" ausgegeben
Dann muss ich da mal was einbauen das wir sehen was er da macht. Setze mich gleich mal ran.
Magst mal ganz vorsichtig das ganze mit der neuen Firmware testen ;D
Keine Angst, kaputt kann man da nichts machen.
Wenn man erst einmal angefangen hat, nimmt es kein Ende.
Daher meine Überlegung, von der ich nicht weiss, ob sie sinnvoll ist:
Wen interessiert eigentlich mitten in der Nacht, ob die Pflanze gegossen werden muss?
Wäre da nicht sinnvoll, das Attribut zum zeitweisen Deaktivieren nutzen zu können?
Ausserdem bräuchte man ja eine Datenauswertung. Leider habe ich keinen grünen Daumen. Man müsste aus den Werten ja irgendwie eine Warnung berechnen können, wie bei Parrot Flower Power zum Beispiel.
Vielleicht kennt sich ja damit jemand aus, oder kann Vergleichswerte liefern.
Man könnte, wenn man die Parrot - Werte kennt, ja diese auf unseren Sensor umrechnen.
Es müssten halt User mit Perrot uns diese Werte mitteilen.
Am besten wäre natürlich, wenn jemand beide Sensoren besitzen und in den selben Topf stecken würde.
Hat da wer irgendwelche Ideen?
So jetzt mal mit Debugausgaben. Ein einfacher reload reicht sofern man schon mal die neue Version hatte
ANHANG WURDE ENTFERNT
Man kann später noch das Modul erweitern, so das es auch Meschenlesbare readings gibt. Also muss gegossen werden oder muss gedünkt werden. Das kann man aber hallt nur in Abhängigkeit einer Pflanzenart machen und deren Soll Werte.
Ich habe schon gesehen ;) Data 2,4 & 6 haben in dem Script wohl anscheinend keinen wert und er gibt immer nur die "-30" mit den Trennezichen von dir aus ;)
Das habe ich schon, alles auf 0. Wenn ich das auf der Webseite aber richtig verstanden habe sollte sowohl die 2.6.2, als auch die 2.6.6 mit der 2.6.6 Variante klappen.
Ausgabe von 2.6.6: Alles 0 außer Firmware -30.-30.-30 ;)
Zu den "empfohlenen" Werten hat die Xiaomi "Flower Care" eine Datenbank mit 3.000 Pflanzen integriert und bei meinen beiden gibt er hier folgendes aus:
Wasser: >25
Dünger: >500
Licht: Keine Ahnung :X
Hier noch der Link zur App: https://appsto.re/de/Wcjsbb.i
Keine Angst, ist nicht auf Chinesisch, sondern Englisch. Pflanzen kann man da per Bild und Menü finden.
Zitat von: CoolTux am 10 November 2016, 20:36:24
So jetzt mal mit Debugausgaben. Ein einfacher reload reicht sofern man schon mal die neue Version hatte
Too many arguments for main::XiaomiFlowerSens_forDone_encodeJSON at ./FHEM/74_XiaomiFlowerSens.pm line 234, near "$fw)"
Beim Einfügen per Edit Files
Bei mir:
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.19
Readings:
2016-11-10 20:41:02 fertility 282
2016-11-10 20:41:02 firmware -30.-30.-30
2016-11-10 20:41:02 lux 3
2016-11-10 20:41:02 moisture 21
2016-11-10 20:40:14 state initialized
2016-11-10 20:41:02 temperature 20.7
Helper:
Attributes:
group Pflanzen
room FlowerSens,Wohnzimmer
verbose 5
Log:
2016.11.10 20:40:59 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.10 20:40:59 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.10 20:41:02 1: PERL WARNING: printf() on closed filehandle SOCK at ./FHEM/74_XiaomiFlowerSens.pm line 278.
2016.11.10 20:41:02 1: PERL WARNING: printf() on closed filehandle SOCK at ./FHEM/74_XiaomiFlowerSens.pm line 279.
2016.11.10 20:41:02 1: PERL WARNING: printf() on closed filehandle SOCK at ./FHEM/74_XiaomiFlowerSens.pm line 280.
2016.11.10 20:41:02 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.10 20:41:02 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
ZitatZu den "empfohlenen" Werten hat die Xiaomi "Flower Care" eine Datenbank mit 3.000 Pflanzen integriert und bei meinen beiden gibt er hier folgendes aus:
Wasser: >25
Dünger: >500
Licht: Keine Ahnung :X
Da ich des Englischen nicht mächtig bin, bitte ich um den Link.
Ich hatte selber schon gesucht, aber natürlich nichts finden können.
Danke dir im Voraus.
Vielleicht kann man ja diese tabellarisch irgendwie erfassen. Mal sehen.
Link zur App ist oben ergänzt.
Hattest du in der App gesucht oder die App nicht gefunden? Oder die Werte, die er Vorschlägt?
Zitat von: Hagenuck1 am 10 November 2016, 20:40:40
Ich habe schon gesehen ;) Data 2,4 & 6 haben in dem Script wohl anscheinend keinen wert und er gibt immer nur die "-30" mit den Trennezichen von dir aus ;)
Das habe ich schon, alles auf 0. Wenn ich das auf der Webseite aber richtig verstanden habe sollte sowohl die 2.6.2, als auch die 2.6.6 mit der 2.6.6 Variante klappen.
Ausgabe von 2.6.6: Alles 0 außer Firmware -30.-30.-30 ;)
Zu den "empfohlenen" Werten hat die Xiaomi "Flower Care" eine Datenbank mit 3.000 Pflanzen integriert und bei meinen beiden gibt er hier folgendes aus:
Wasser: >25
Dünger: >500
Licht: Keine Ahnung :X
Hier noch der Link zur App: https://appsto.re/de/Wcjsbb.i
Keine Angst, ist nicht auf Chinesisch, sondern Englisch. Pflanzen kann man da per Bild und Menü finden.
Aber meinen groben Schnitzer haste nicht gefunden ;D Sorry Leute habe da einen Zahlendreher drin.
Jetzt sollte es aber super gehen
ANHANG WURDE ENTFERNT
nee, den muss ich noch suchen ;)
Aber nun hab ich noch einen :D
syntax error at ./FHEM/74_XiaomiFlowerSens.pm line 171, near "readingsSingleUpdate " Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 171. Too many arguments for main::XiaomiFlowerSens_forDone_encodeJSON at ./FHEM/74_XiaomiFlowerSens.pm line 238, near "$fw)"
EDIT: Meintest du die 35? ;)
Zitat
Link zur App ist oben ergänzt.
Hattest du in der App gesucht oder die App nicht gefunden? Oder die Werte, die er Vorschlägt?
Die App hatte ich schon drauf auf dem Handy. Ich habe mich gar nicht registrieren können.
Die Werte hatte ich nicht gesehen. Ich dachte, du meintest, es gäbe Werte auf der Homepage.
EDIT:Mist. Ist ja nicht für Android. :-(
Blödes Semikolon aber auch.
ANHANG WURDE ENTFERNT
Hehe :X
too many arguments for main::XiaomiFlowerSens_forDone_encodeJSON at ./FHEM/74_XiaomiFlowerSens.pm line 238, near "$fw)"
Ok den habe ich nun auch gefunden. Bedeutet aber auch das er die Werte jetzt wohl hat.
Nun muß aber FHEM neugestartet werden. Also shutdown restart machen bitte.
Ach so, wegen der Sache mit der neuen Firmware, das schaue ich mir an sobald das hier stabil rennt.
ANHANG WURDE ENTFERNT
Ja, jetzt kann ich sehen, dass ich noch Firmware 2.6.2 habe ;-)
Ähm..., sollte es nicht auch ein Battery Reading geben? 8)
Bitte mal ein list vom Device. Danke
Bitte sehr:
Internals:
BTMAC C4:7C:8D:61:87:DB
DEF C4:7C:8D:61:87:DB
INTERVAL 3600
NAME Pflanze1
NR 37
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.21
Readings:
2016-11-10 21:24:57 fertility 61
2016-11-10 21:24:57 firmware 2.6.2
2016-11-10 21:24:57 lux 47
2016-11-10 21:24:57 moisture 16
2016-11-10 21:24:44 state initialized
2016-11-10 21:24:57 temperature 20.4
Helper:
Attributes:
icon weather_pollen
interval 3600
room FlowerSens
Es fehlt immer noch die Batterie. Hast Du verbose5 und kannst mal ein Logauszug bitte geben.
Mein Sensor musste erst per Hand über Putty geweckt werden. Kann aber auch Zufall sein.
2016.11.10 21:26:08 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 9195
2016.11.10 21:26:08 3: (Blume1) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.10 21:27:22 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.10 21:27:22 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.10 21:27:24 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.10 21:27:24 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
2016.11.10 21:30:38 3: Sub XiaomiFlowerSens (Pflanze1) - set interval to default
2016.11.10 21:30:51 4: Sub XiaomiFlowerSens (Pflanze1) - Starte Blocking Call
2016.11.10 21:30:51 4: Sub XiaomiFlowerSens_Run (Pflanze1) - Running nonBlocking
2016.11.10 21:30:54 4: Sub XiaomiFlowerSens_Run (Pflanze1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.10 21:30:54 4: Sub XiaomiFlowerSens_Done (Pflanze1) - Abschluss!
Ups, da war jemand schneller, aber doppelt hält ja bekanntlich besser.
bei mir klappt nun auch. 2.6.2 & 2.6.6 werden angezeigt bei letzterem natürlich sonst nichts ;)
Den Fehler gerade konnte ich übrigens im EditFIles nur durch Neustart, Script einfügen, Neustart beheben, falls sonst noch wer das Problem hat ;)
Ich denke ich habe da noch was gefunden wegen Batterie
ANHANG WURDE ENTFERNT
Batterie Klappt bei 2.6.2 & 2.6.6 ;)
Internals:
BTMAC C4:7C:8D:61:86:4D
DEF C4:7C:8D:61:86:4D
INTERVAL 3600
NAME Blume2
NR 82
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.24
Readings:
2016-11-10 20:35:02 battery 94
2016-11-10 20:35:02 fertility 0
2016-11-10 20:35:02 firmware 2.6.6
2016-11-10 20:35:02 lux 0
2016-11-10 20:35:02 moisture 0
2016-11-10 20:29:46 state initialized
2016-11-10 20:35:02 temperature 0
Helper:
Attributes:
room FlowerSens
Internals:
BTMAC C4:7C:8D:61:84:47
DEF C4:7C:8D:61:84:47
INTERVAL 3600
NAME Blume1
NR 81
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.24
Readings:
2016-11-10 20:34:49 battery 100
2016-11-10 20:34:49 fertility 23
2016-11-10 20:34:49 firmware 2.6.2
2016-11-10 20:34:49 lux 9
2016-11-10 20:34:49 moisture 14
2016-11-10 20:34:47 state unreachable
2016-11-10 20:34:49 temperature 20.1
Helper:
Attributes:
room FlowerSens
PS: Ich glaube ich muss mal wieder düngen ::)
Bitte list, ich muß das immer sehen können. Danke
Jetzt passt es !!!
Internals:
BTMAC C4:7C:8D:61:87:DB
DEF C4:7C:8D:61:87:DB
INTERVAL 3600
NAME Pflanze1
NR 37
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.24
Readings:
2016-11-10 21:35:22 battery 69
2016-11-10 21:35:22 fertility 62
2016-11-10 21:35:22 firmware 2.6.2
2016-11-10 21:35:22 lux 47
2016-11-10 21:35:22 moisture 16
2016-11-10 21:35:05 state initialized
2016-11-10 21:35:22 temperature 20.4
Helper:
Attributes:
icon weather_pollen
room FlowerSens
verbose 5
Deine Batterie hat echt nur noch 69% ?
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.24
Readings:
2016-11-10 21:39:35 battery 100
2016-11-10 21:39:35 fertility 283
2016-11-10 21:39:35 firmware 2.6.2
2016-11-10 21:39:35 lux 3
2016-11-10 21:39:35 moisture 21
2016-11-10 21:37:45 state unreachable
2016-11-10 21:39:35 temperature 20.7
Helper:
Attributes:
group Pflanzen
room FlowerSens,Wohnzimmer
verbose 5
Bei mir wird immernoch unreachable angezeigt, obwohl die Werte aktualisiert wurden.
Batterie gibts nicht.
Die Batterie vom meinem zweitem Sensor zeigt 98 an.
Eine hatte ich vorsorglich mal getauscht, kann also durchaus passen.
Batterie ist jetzt da. Wieder verspätet!!!! Ich denke, der Sensor hat was gegen mich.
Ich sehe gerade, dass oben im List die Batterie schon angezeigt wurde. Nur in der Device-Anzeige nicht. Seltsam.
Das habe ich auch.
Einfach mal ein Refresh des Browser machen ;-)
(Normales Verhalten!)
Ok sehr schön. Das mit der 2.6.6 habe ich nun auch verstanden. Würde mich mal interessierne ob man immer vorher den Wert schreiben muss oder ob es einmalig reicht. Wäre ja dann mal wieder eine Verbindung mehr und somit mehr Batterieverbrauch.
Auch habe ich das timeout etwas erhöht so das nicht mehr so schnell unreachable kommen sollte.
Ich baue nun Support für die 2.6.6 ein.
Okay, wir können es ja testen, ob einmalig ausreicht ;)
Zitat
Das habe ich auch.
Einfach mal ein Refresh des Browser machen ;-)
(Normales Verhalten!)
Habe ich mehrmals gemacht. die anderen Werte wurden ja auch angezeigt (aktualisiert). Ein Mysterium.
Ok Support für 2.6.6 ist drin.
Es muß wieder ein shutdown restart gemacht werden
ANHANG WURDE ENTFERNT
Gibt es irgend welche Vorteile, oder Nachteile zwischen den beiden Firmware-Versionen?
Sollte man ein Update machen, oder besser sein lassen?
So, bei mir gehts auch mit der letzten Version :-) Super, danke!
Wie kann man ein FW von 2.6.2. auf 2.6.6. machen?
Kann schon ein 2.6.6er Kandidat was zur aktuellen Version sagen? :D
Da ich glaube ich der einzige bin morgen früh ;)
Gesendet von iPhone mit Tapatalk
Alles klar. Dann gehe ich auch mal schlafen. Guts Nächtle
Die automatische Aktualisierung scheint nicht zu funktionieren. Gehts bei jemandem?
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.24
Readings:
2016-11-10 21:42:46 battery 100
2016-11-10 21:42:46 fertility 283
2016-11-10 21:42:46 firmware 2.6.2
2016-11-10 21:42:46 lux 21
2016-11-10 21:42:46 moisture 21
2016-11-10 21:37:45 state unreachable
2016-11-10 21:42:46 temperature 20.8
Helper:
Attributes:
group Pflanzen
room Wohnzimmer
verbose 5
Ich habe mir die App für Android noch einmal installiert und mich der Mühe einer Registrierung unterzogen. Die wollten eine Bestätigungsmail schicken, aber die kam bis jetzt nicht an. Auch eine zweite Registrierung mit einer anderen Mailadresse verlief auf gleiche Weise im Sand.
Hat jemand mit Android-App sich registrieren können?
Morgen :)
So, habe die aktuelle nun drin.
List von der 2.6.2:
Internals:
BTMAC C4:7C:8D:61:84:47
DEF C4:7C:8D:61:84:47
INTERVAL 3600
NAME Blume1
NR 81
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.32
Readings:
2016-11-11 05:57:22 battery 100
2016-11-11 05:57:22 fertility 35
2016-11-11 05:57:22 firmware 2.6.2
2016-11-11 05:57:22 lux 8
2016-11-11 05:57:22 moisture 14
2016-11-11 05:55:59 state initialized
2016-11-11 05:57:22 temperature 18.7
Helper:
Attributes:
room FlowerSens
List von der 2.6.6:
Internals:
BTMAC C4:7C:8D:61:86:4D
DEF C4:7C:8D:61:86:4D
INTERVAL 3600
NAME Blume2
NR 82
STATE initialized
TYPE XiaomiFlowerSens
VERSION 0.1.32
Readings:
2016-11-11 05:56:14 battery 94
2016-11-11 05:56:14 fertility 0
2016-11-11 05:56:14 firmware 2.6.6
2016-11-11 05:56:14 lux 0
2016-11-11 05:56:14 moisture 0
2016-11-11 05:55:59 state initialized
2016-11-11 05:56:14 temperature 0
Helper:
Attributes:
room FlowerSens
Die automatik lief bei mir über Nacht auch nicht...
EDIT: Hier noch die Ausgaben vom gatttool bei der 2.6.6 (erstellt nach dem statusRequest mit der neusten Version):
gatttool -b C4:7C:8D:61:86:4D --char-read --handle=0x36
Characteristic value/descriptor: 00 00
gatttool -b C4:7C:8D:61:86:4D --char-read --handle=0x35
Characteristic value/descriptor: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
gatttool -b C4:7C:8D:61:86:4D --char-write --handle=0x36 -n 0100
-> Keine Fehlermeldung, soll also wohl akzeptiert worden sein?
gatttool -b C4:7C:8D:61:86:4D --char-read --handle=0x36
Characteristic value/descriptor: 00 00
gatttool -b C4:7C:8D:61:86:4D --char-write-req --handle=0x36 -n 0100
Characteristic value was written successfully
gatttool -b C4:7C:8D:61:86:4D --char-read --handle=0x36
Characteristic value/descriptor: 00 00
Dann mittels Notification:
gatttool -I
connect C4:7C:8D:61:86:4D
Attempting to connect to C4:7C:8D:61:86:4D
Connection successful
char-read-hnd 36
Characteristic value/descriptor: 00 00
Notification handle = 0x0021 value: 00 -> Wird nach dem Connect des öfteren ausgegeben...
char-write-cmd 36 0100
Notification handle = 0x0021 value: 00
char-read-hnd 36
Characteristic value/descriptor: 00 00
Notification handle = 0x0021 value: 00
Was ich da gerade noch sehe. Auf der Seite stand folgendes:
Zitat0x0033 - You need to write 0xA01F to this handle to enable real-time data reading
0x0035 - The actual data from the sensors, can be read only after you enable real-time data, otherwise returns zeros
::)
Habe ich nun auch mit folgendem Befehl gemacht:
gatttool --device=C4:7C:8D:61:86:4D --char-write-req -a 0x33 --value=A01F
Characteristic value was written successfully
gatttool -b C4:7C:8D:61:86:4D --char-read --handle=0x35
Characteristic value/descriptor: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Also keine Ahnung, was der da momentan macht... Und nun geht's erstmal zur Arbeit
Die automatische Aktualisierung funktioniert bei mir auch nicht. VERSION ist 0.1.32
An der automatischen Aktualisierung sitze ich gerade dran. Das mit der Firmware 2.6.6 müssen wir uns noch mal zusammen in Ruhe anschauen.
So nun mit funktionierenden Timer. Habe es selbst getestet.
Zum Thema Firmware 2.6.6
Bitte einmal machen
gatttool -I
[ ][LE]>
[ ][LE]>connect BTMAC
[hier steht dasnn die MAC][LE]>char-write-cmd 0x33 A01F
[hier steht dasnn die MAC][LE]>char-read-hnd 0x35
Ausgaben bitte hier posten
Erledigt:
gatttool -I
[ ][LE]> connect C4:7C:8D:61:86:4D
Attempting to connect to C4:7C:8D:61:86:4D
Connection successful
[C4:7C:8D:61:86:4D][LE]> char-write-cmd 0x33 A01F
[C4:7C:8D:61:86:4D][LE]> char-read-hnd 0x35
Characteristic value/descriptor: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
[C4:7C:8D:61:86:4D][LE]> char-write-cmd 0x33 A01F
Notification handle = 0x0021 value: 00
[C4:7C:8D:61:86:4D] char-read-hnd 0x35
Command Failed: Disconnected
Das Ding disconnected immer sehr schnell....Darum 2x
Ok wenigstens wissen wir nun das es nichts damit zu tun hat das die Verbindung wieder getrennt wird nach dem write.
Frage ist nun wieso klappt es nicht so wie beschrieben?
Das stimmt und letzteres ist ne ziemlich gute Frage...
Hier https://knx-user-forum.de/forum/projektforen/edomi/999422-lbs-19000406-xiaomi-flower-monitor-auslesen schreiben die das ja auch nochmal so wie in meinem Post von heute morgen und bei denen klappts...
ok neuer Versuch.
gatttool -b $mac --char-write-req -a 0x33 -n A01F
Interessant dürfte sein welche Antwort da kommt.
Wenn nichts weiter kommt dann bitte noch mal ein read 0x35 machen
Kommt das gleiche wie oben bei dem letzten Befehl raus. Unterschied ist nun ja nur statt --value=A01F -> -n A01F
Gesendet von iPhone mit Tapatalk
nicht ganz. char-write-req sollte einen request ausspücken. Also eine Rückmeldung kommen. deswegen sollte mal darauf geachtet werden.
Ob nun --value oder -n ist egal. Das eine ist der Quicky zum anderen
Steht oben ja drin ;)
"characteristic value was written successfully" wenn ich aber den read auf den 33 mache kommt noch 0000 raus, ist das richtig?
Gesendet von iPhone mit Tapatalk
Ich versuche seit gestern verzweifelt, mich per App Mi Home für Android bei Xiaomi zu registrieren.
Entweder ich bekomme die Meldung, dass eine Verification-Mail kommen soll, oder die schreiben es geht momentan nicht, ich soll später erneut versuchen.
Ich habe also keine Chance.
Meine Frage an euch wäre, ob mich jemand netter Weise mit meiner Mailadresse registrieren könne, der ein Iphone nutzt. Da scheint es ja zu gehen.
Die vielen Versuche sind wegen der Capcha-Abfrage sehr umständlich und für mich auch fehleranfällig.
Bei Entgegenkommen schicke ich meine Mailadresse per pN, obwohl sie kein Geheimnis ist.
Schon mal danke im Voraus und Entschuldigung, falls das hier nicht so richtig reinpasst.
Das ist aber nicht der Request sondern nur so eine Meldung.
Sei mal bitte so nett und mache es mal bitte genau so wie beschrieben. So wie die von der Website es machen. Und jede Audgabe bitte hier Posten.
Danke Dir
Zitat von: Invers am 11 November 2016, 15:33:18
Meine Frage an euch wäre, ob mich jemand netter Weise mit meiner Mailadresse registrieren könne, der ein Iphone nutzt.
Auch auf dem iPhone nur ein:
'Couldn't create account, try again later'
Zitat von: Invers am 11 November 2016, 15:33:18
Ich versuche seit gestern verzweifelt, mich per App Mi Home für Android bei Xiaomi zu registrieren.
Entweder ich bekomme die Meldung, dass eine Verification-Mail kommen soll, oder die schreiben es geht momentan nicht, ich soll später erneut versuchen.
Hallo,
ich hatte da auch riesen Probleme.
Dann habe ich es über Telefon (Handy +49 ...) gemacht und innerhalb von Sekunden eine SMS mit dem code bekommen.
Wichtig ist, dass du als Location: China-Mainland hast. Bei den anderen geht es nicht.
Grüße
Jörg
Das probiere ich sofort. Vielen Dank.
Hey! Hat auf Anhieb geklappt. Danke dir sehr.
Hallo Leon.
Erst mal Danke, dass Du schon wieder federführend ein für mich interessantes Modul schreibst.
Mit der letzten Version 0.1.39 haben meine Xiaomi's ihre Probleme.
Es kommt immer zu einem Timeout. state hat dann unreachable.
Alle fünf sind Firmware 2.6.2 und hatten mit der vorherigen Version einwandfrei funkioniert (natürlich ohne interval)
Mit statusRequest wurde aktuallisiert. Dies bringt in der 0.1.39 ebenfalls den Timeout.
2016.11.11 17:12:19 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 1147
2016.11.11 17:12:19 3: (rmt_MI_Pflanze04) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.11 17:12:32 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze05) - Starte Blocking Call
2016.11.11 17:12:32 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze05) - Running nonBlocking
2016.11.11 17:12:42 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 1154
2016.11.11 17:12:42 3: (rmt_MI_Pflanze05) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.11 17:18:20 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Request Timer wird aufgerufen
2016.11.11 17:18:20 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Starte Blocking Call
2016.11.11 17:18:20 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze01) - Running nonBlocking
2016.11.11 17:18:30 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 1205
2016.11.11 17:18:30 3: (rmt_MI_Pflanze01) - The BlockingCall Process terminated unexpectedly. Timedout
und ein list des device:
Internals:
BTMAC C4:7C:8D:61:4F:73
CFGFN
DEF C4:7C:8D:61:4F:73
INTERVAL 840
NAME rmt_MI_Pflanze05
NR 283
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.39
Readings:
2016-11-11 17:12:42 state unreachable
Helper:
Attributes:
interval 840
room FlowerSens
sortby 05
stateFormat state
verbose 5
Kann das vielleicht mit der Erweiterung auf die Firmware 2.6.6 zu tun haben?
Grüße
mi.ke
Ich kann am Sonntag nochmal testen, vorher bin ich nicht zuhause oder habe keine Zeit :/
Gesendet von iPhone mit Tapatalk
Zitat von: mi.ke am 11 November 2016, 17:29:42
Hallo Leon.
Erst mal Danke, dass Du schon wieder federführend ein für mich interessantes Modul schreibst.
Mit der letzten Version 0.1.39 haben meine Xiaomi's ihre Probleme.
Es kommt immer zu einem Timeout. state hat dann unreachable.
Alle fünf sind Firmware 2.6.2 und hatten mit der vorherigen Version einwandfrei funkioniert (natürlich ohne interval)
Mit statusRequest wurde aktuallisiert. Dies bringt in der 0.1.39 ebenfalls den Timeout.
2016.11.11 17:12:19 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 1147
2016.11.11 17:12:19 3: (rmt_MI_Pflanze04) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.11 17:12:32 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze05) - Starte Blocking Call
2016.11.11 17:12:32 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze05) - Running nonBlocking
2016.11.11 17:12:42 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 1154
2016.11.11 17:12:42 3: (rmt_MI_Pflanze05) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.11 17:18:20 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Request Timer wird aufgerufen
2016.11.11 17:18:20 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Starte Blocking Call
2016.11.11 17:18:20 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze01) - Running nonBlocking
2016.11.11 17:18:30 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 1205
2016.11.11 17:18:30 3: (rmt_MI_Pflanze01) - The BlockingCall Process terminated unexpectedly. Timedout
und ein list des device:
Internals:
BTMAC C4:7C:8D:61:4F:73
CFGFN
DEF C4:7C:8D:61:4F:73
INTERVAL 840
NAME rmt_MI_Pflanze05
NR 283
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.39
Readings:
2016-11-11 17:12:42 state unreachable
Helper:
Attributes:
interval 840
room FlowerSens
sortby 05
stateFormat state
verbose 5
Kann das vielleicht mit der Erweiterung auf die Firmware 2.6.6 zu tun haben?
Grüße
mi.ke
Das testen wir einfach. Ich m!ache Dir heute Abend eine Version ohne den 2.6.6 Support.
Ansonsten gab es aber keinerlei Veränderung ausser das die automatische Aktualisierung aktiviert wurde und ich sogar die Timeout Zeit erhöht habe. Sind nun 15s
Hallo Leon.
Vielleicht hängt das auch daran, dass jetzt mehrere devices angesprochen werden.
Gestern waren es erst einer, als der lief, hatte ich den 2.ten eingerichet.
Jetzt sind es deren fünf.
Hab nochmal die shell bemüht und bekommen sporadisch diesen Fehler
pi@fhem:~ $ gatttool -I
[ ][LE]> connect C4:7C:8D:61:2A:A8
Attempting to connect to C4:7C:8D:61:2A:A8
Connection successful
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
[C4:7C:8D:61:2A:A8][LE]>
(gatttool:927): GLib-WARNING **: Invalid file descriptor.
Bin jetzt aber ins WE unterwegs auf Rolle und erst am Montag wieder da.
Ich wollte nur Bescheid geben, dass Du Dir wegen mir keine extra Mühe machst, wenn's viellicht doch wo anders dran hängt.
Vielen Dank und bis nächste Woche
Cheers
mi.ke
Meine App weigert sich konsequent mit dem Sensor zu kommunizieren. Er wird weder gesucht, noch gefunden. Per Hand hinzufügen geht auch nicht. Es wird auch immer nur ein WLAN Symbol gezeigt, aber kein Bluetooth.
Wie habt ihr denn die App dazu bewegen können, den Sensor zu finden?
Bei 5 hätte ich eine Idee. Ich habe da schon eine bestimmte debugausgabe drin die muß ich nur mal aktivieren. Mal schauen ob es das ist.
Ansonsten ist der invalid File descriptor auch ganz interessant.
So, habe nun gerade nochmal deine Befehle ausgeführt. Das Ergebnis hier als Screenshot, kopieren kann man im Serverauditor leider nicht... (http://uploads.tapatalk-cdn.com/20161111/20cdc8caab132c8c8e115a12661d4a65.png)
Gesendet von iPhone mit Tapatalk
Super vielen Dank.
Leider nicht dass Ergebnis welches ich mir erhofft habe, aber dennoch ein Ergebnis.
So.. Bin total gespannt. ;D Meine Pflanzensensoren sind heute gekommen.
Werde mich morgen gleich mal an die Einrichtung wagen. ::)
Ich habe mal die Debuggingmeldungen für multigatttool aufrufe aktiviert. Ausserdem den char write für 2.6.6 raus genommen. Lasst uns erstmal eine stabile Basis schaffen.
Hoffe das jetzt erstmal der Autorequest geht.
ANHANG WURDE ENTFERNT
Mein Sensor ist momentan nicht erreichbar, weil er wohl keinen Bock hat.
Meine alte Routine mit dem Cronjob meldet:
Internals:
CFGFN
NAME Plant1
NR 324
STATE error
TYPE dummy
Readings:
2016-11-11 20:00:12 Battery 100
2016-11-11 20:00:12 Fertility 79
2016-11-11 20:00:13 Firmware 2.6.2
2016-11-11 20:00:10 Lux 26
2016-11-11 20:00:11 Moisture 13
2016-11-11 20:00:10 Temp 20.1
2016-11-12 08:00:08 gattool Fehler: connect error: Transport endpoint is not connected (107)
2016-11-12 08:00:10 gattool_35 ---
2016-11-12 08:00:10 gattool_38 ---
2016-11-12 08:00:09 state error
Attributes:
alias Pflanzensensor 1
icon weather_pollen
room 1 testraum,Wohnzimmer
userReadings Moisture,Fertility,Lux,Temp
Das neue Modul meldet:
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE active
TYPE XiaomiFlowerSens
VERSION 0.1.42
Readings:
2016-11-12 08:24:58 battery 0
2016-11-12 08:24:58 fertility 0
2016-11-12 08:24:58 firmware -30.-30.-30
2016-11-12 08:24:58 lux 0
2016-11-12 08:24:58 moisture 0
2016-11-12 08:24:58 state active
2016-11-12 08:24:58 temperature 0
Helper:
Attributes:
group Pflanzen
room Wohnzimmer
verbose 5
Mein Log sagt dazu:
Device is not available.
Device is not available.
2016.11.12 08:30:50 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 08:30:50 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
connect: No route to host (113)
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 272.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[1] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 276.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
connect: No route to host (113)
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 295.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[0] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 297.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[2] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 298.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[4] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 298.
2016.11.12 08:30:50 1: PERL WARNING: Use of uninitialized value $data[6] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 298.
2016.11.12 08:30:50 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.12 08:30:50 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
So, ich musste wirklich meinen Pi neu starten, um wieder Kontakt mit dem Sensor zu bekommen. Im Sensor Batterie raus und rein hat nicht geholfen. FHEM-Neustart auch nicht. Auch der Start des Scriptes (bei mir /home/pi/plant1.sh), was eigentlich sonst in jeder Situation geholfen hatte, brachte diesmal nichts.
Nach dem Neustart des Pi geht nun alles wieder und ich habe nun folgenden List:
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.42
Readings:
2016-11-12 08:51:58 battery 100
2016-11-12 08:51:58 fertility 201
2016-11-12 08:51:58 firmware 2.6.2
2016-11-12 08:51:58 lux 167
2016-11-12 08:51:58 moisture 19
2016-11-12 08:51:20 state unreachable
2016-11-12 08:51:58 temperature 22.3
Helper:
Attributes:
group Pflanzen
room Wohnzimmer
verbose 5
Besonders verwirrend ist immer "state unreachable ", da ja der Sensor empfangen wurde.
Log zeigt:
2016.11.12 08:51:55 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 08:51:55 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.12 08:51:58 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.12 08:51:58 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Ich denke, der Timeout müsste wahrscheinlich weiter erhöht werden, da der manuelle Aufruf des Scriptes fast immer erfolgreicher ist, wenn es Probleme gibt.
Erklären kann ich das natürlich aus Unwissenheit nicht.
hier zum Vergleich noch das List Dummy, der durch das Script befüllt wurde:
Internals:
CFGFN
NAME Plant1
NR 324
STATE done
TYPE dummy
Readings:
2016-11-12 09:04:50 Battery 100
2016-11-12 09:04:49 Fertility 213
2016-11-12 09:04:50 Firmware 2.6.2
2016-11-12 09:04:48 Lux 183
2016-11-12 09:04:49 Moisture 19
2016-11-12 09:04:47 Temp 20.5
2016-11-12 09:04:45 gattool ---
2016-11-12 09:04:46 gattool_35 Characteristic value/descriptor: cd 00 00 b7 00 00 00 13 d5 00 00 00 00 00 00 00
2016-11-12 09:04:47 gattool_38 Characteristic value/descriptor: 64 10 32 2e 36 2e 32
2016-11-12 09:04:51 state done
Attributes:
alias Pflanzensensor 1
icon weather_pollen
room 1 testraum,Wohnzimmer
userReadings Moisture,Fertility,Lux,Temp
In dem Fall wahrscheinlich nicht so interessant, weil kein Fehler gemeldet wird.
Interessant ist aber die Tatsache, dass die Ausführung des Scrips mindestens 4 mal so lange dauert, wie die Ausführung per Modul.
Du hast da gerade noch einen Bug offenbart. Ich wunderte mich wieso das unreachable nicht mit dem Log zusammen passt und dann viel mir ein wieso er nicht wieder auf active wechselt wenn er in die Timer gesteuerte Sub springt. Jetzt weiß ich das ich meine Abfrage erweitern muß.
Danke Dir
Grüße
state wurde eigentlich noch nie aktualisiert. Das hatte ich auch bereits viel weiter oben berichtet. Ist wohl untergegangen. Kein Wunder bei der Beitragsfrequenz. :-)
Hier noch Log und List nach automatischer aktualisierung. Der Sensor wurde wieder nicht erfolgreich ausgelesen.
2016.11.12 09:42:14 5: Sub XiaomiFlowerSens (Blume1) - Request Timer wird aufgerufen
2016.11.12 09:42:14 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 09:42:14 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
connect error: Transport endpoint is not connected (107)
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 272.
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value $data[1] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value $data[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value $data[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 276.
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value $data[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.12 09:42:19 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.12 09:42:23 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.12 09:42:23 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.42
Readings:
2016-11-12 09:42:23 battery 100
2016-11-12 09:42:23 fertility 0
2016-11-12 09:42:23 firmware 2.6.2
2016-11-12 09:42:23 lux 0
2016-11-12 09:42:23 moisture 0
2016-11-12 08:51:20 state unreachable
2016-11-12 09:42:23 temperature 0
Helper:
Attributes:
group Pflanzen
room Wohnzimmer
verbose 5
Doch der state ändert sich. Aber so schnell das du es nicht bemerkst.
Nach einem define ist er initial danach active wenn er ab ruft ist er Call Data oder so und wenn er fertig ist active. Alles in Abhängigkeit vom vorherigen state und da war schlicht unreachable noch nicht mit dabei. Lach.
connect error: Transport endpoint is not connected (107)
Das ist die Fehlermeldung vom gatttool. Da scheint es Probleme mit dem Sensor zu geben. Ich habe noch keine Fehlerbehandlung drin, das mache ich immer ganz zum Schluss wenn so ein paar Fehler aufgetreten sind. Zum Beispiel keine Readingsaktualisierung wenn keine Daten vorhanden sind.
Grüße
Also den 107 Fehler hatte ich auch schon hinundwieder mal mit meinem alten sh-Script. Das ließ sich über eine BLE suche mit dem Hcitool meist beheben glaube ich.
Gesendet von iPhone mit Tapatalk
Ich habe nun die Bedingung für ein state active entsprechend gesetzt. Nun wird auch nach einem unreachable beim nächsten durchlauf ein active.
Ausserdem habe ich das timeout noch mal etwas erhöht.
So hab heute morgen meine 2 Sensoren an den Start gebracht, geballte 3 Stunden bis das Ding lief.
Mit dem gatttool bekomme ich jetzt auch Werte angezeigt.
Ich hab das aktuelle Modul von heute geladen, bekomme aber als Status noch ein unreachable.
Was ich noch nicht verstanden habe, ist ob ich neben dem Module auch das Script benötige oder ob das
damit unnötig ist.
Wenn ich irgendwie mit Werten oder Tests unterstützen kann, gerne.
Es reicht einzig und alleine das Modul.
@All
Es sollte natürlich vermieden werden das das Script und das Modul zusammen betrieben werden. Dann blockiert es sich gegenseitig.
@Invers könnte das Deine Probleme verursacht haben?
ok, ich habe nur das Modul eingebunden, muss also noch etwas anderes sein.
Gib mal Log Ausgaben und ein list bitte
Zitat@Invers könnte das Deine Probleme verursacht haben?
Nein. Mein Cronjob wird nur um 8, 14 und 20 Uhr einmal abgearbeitet, oder halt bei Bedarf per Hand.
Da gibt es sicherlich keine Konflikte.
Mein Sensor ist/war offenbar nach fhem-Neustart nicht sofort erreichbar.
Wird denn nach Neustart wirklich automatisch eingelesen?
connect error: Transport endpoint is not connected (107)
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 272.
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value $data[1] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value $data[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value $data[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 276.
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value $data[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.12 14:41:02 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.12 14:41:06 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
Und hier noch ein List, nachdem per statusRequest aktualisiert wurde:
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.45
Readings:
2016-11-12 14:42:42 battery 100
2016-11-12 14:42:42 fertility 243
2016-11-12 14:42:42 firmware 2.6.2
2016-11-12 14:42:42 lux 1283
2016-11-12 14:42:42 moisture 20
2016-11-12 14:42:35 state unreachable
2016-11-12 14:42:42 temperature 21
Helper:
Attributes:
group Pflanzen
room Wohnzimmer
verbose 5
Log: (Hoffe, ich habe den Anfang mit erwischt bei Copy)
2016.11.12 14:42:30 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 14:42:30 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.12 14:42:35 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 11080
2016.11.12 14:42:35 3: (Blume1) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.12 14:42:35 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 14:42:35 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.12 14:42:35 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.12 14:42:35 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
2016.11.12 14:42:38 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 14:42:38 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.12 14:42:42 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.12 14:42:42 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Mit state erschliesst sich mir immer noch nicht. Wenn ich state auswerten möchte, um zu sehen, ob ich wirklich frische Werte bekommen habe, sollte dann da nicht ok, done, erledigt, oder Ähnliches stehen? So kann man ja state nicht wirklich nutzbringend verwenden. Habe ich da grundsätzlich was falsch verinnerlicht?
Also ich meine statt
2016-11-12 14:42:35 state unreachable
z.B.
2016-11-12 14:42:42 state done
also 2016-11-12 14:42:42, wie bei den restlichen Readings.
der Timestamp sollte sich auch bei unreachable ändern, damit man sieht, wann der letzte Ausleseversuch erfolgte und fehlschlug.
Hoffentlich habe ich keinen Knoten im Hirn.
Zitat von: Invers am 12 November 2016, 15:02:34
Mit state erschliesst sich mir immer noch nicht. Wenn ich state auswerten möchte, um zu sehen, ob ich wirklich frische Werte bekommen habe, sollte dann da nicht ok, done, erledigt, oder Ähnliches stehen? So kann man ja state nicht wirklich nutzbringend verwenden. Habe ich da grundsätzlich was falsch verinnerlicht?
Also ich meine statt
2016-11-12 14:42:35 state unreachable
z.B.
2016-11-12 14:42:42 state done
also 2016-11-12 14:42:42, wie bei den restlichen Readings.
der Timestamp sollte sich auch bei unreachable ändern, damit man sieht, wann der letzte Ausleseversuch erfolgte und fehlschlug.
Hoffentlich habe ich keinen Knoten im Hirn.
Tach.
Nach jeden Neustart wird abgefragt. Und es ändert sich auch das timestamp bei jeder Anderung
done als state gab es nur beim Script.
Sieht aus, als wäre eine alter chron-Job noch aktiv.
Meine state Anzeige habe ich so gelöst.
Pflanze.* {
if(ReadingsVal("$NAME","state","state") eq "active") {fhem("attr $NAME stateFormat T:temperature°C H:moisture% D:fertility L:lux B:battery")}
else {fhem("attr $NAME stateFormat state")};
}
Immer aktuelle Werte und alle Fehlermeldungen
Cheers mi.ke
PS.
Leon,
ein Vorschlag.
Lass doch mal die "alten" Zwischenversionen hier im thread stehen, nicht immer löschen.
Dann kann man Dir vielleich besser bei der Fehlersuche helfen....
...Nur ne Idee
Zitat von: CoolTux am 12 November 2016, 13:22:28
Gib mal Log Ausgaben und ein list bitte
Internals:
BTMAC C4:7C:8D:61:93:60
DEF C4:7C:8D:61:93:60
INTERVAL 3600
NAME FM_Olivenbaum
NR 106
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.45
Readings:
2016-11-12 12:46:31 battery 0
2016-11-12 12:46:31 fertility 0
2016-11-12 12:46:31 firmware -30.-30.-30
2016-11-12 12:46:31 lux 0
2016-11-12 12:46:31 moisture 0
2016-11-12 15:24:13 state unreachable
2016-11-12 12:46:31 temperature 0
Helper:
Attributes:
room Garten,FlowerSens
verbose 5
2016.11.12 15:23:57 5: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Request Timer wird aufgerufen
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Starte Blocking Call
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens_Run (FM_Zitronenbaum) - Running nonBlocking
2016.11.12 15:23:58 5: Sub XiaomiFlowerSens (FM_Olivenbaum) - Request Timer wird aufgerufen
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens (FM_Olivenbaum) - Starte Blocking Call
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens_Run (FM_Olivenbaum) - Running nonBlocking
...
2016.11.12 15:24:13 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 12164
2016.11.12 15:24:13 3: (FM_Zitronenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.12 15:24:13 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 12169
2016.11.12 15:24:13 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
..
Host is down (112)
...
Host is down (112)
Und gleich mal über die Console geschaut, was die ausgibt.
pi@raspberrypi /dev $ sudo gatttool -b C4:7C:8D:61:93:60 --char-read -a 0x38 -n A01F
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
Zitatdone als state gab es nur beim Script.
Sieht aus, als wäre eine alter chron-Job noch aktiv.
Das war doch nur als Beispiel, nicht die Realität.
mein Job läuft vom Modul völlig getrennt und Separat in einen eigenen Dummy, der dann eine readingsgroup befüllt.
Eine zweite RG wird vom Modul zu ganz anderen Zeiten gefüllt.
Guck doch mal:
Bei mir ändert sich halt nichts.
2
016-11-12 14:42:35 state unreachable obwohl ja alle anderen Werte aufgefüllt wurden.
Wenn also die Werte korrekt abgerufen wurden, dann müsste halt nach meiner Auffassung auch "unreachable" durch "active" ersetzt werden.
Zitat von: Invers am 12 November 2016, 16:04:50
Das war doch nur als Beispiel, nicht die Realität.
mein Job läuft vom Modul völlig getrennt und Separat in einen eigenen Dummy, der dann eine readingsgroup befüllt.
Eine zweite RG wird vom Modul zu ganz anderen Zeiten gefüllt.
Okay, ich gebe zu, ich verstehe kein Wort davon!?!?
Zitat von: baukater am 12 November 2016, 15:56:30
pi@raspberrypi /dev $ sudo gatttool -b C4:7C:8D:61:93:60 --char-read -a 0x38 -n A01F
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
-n gibt es bei einem char-read nicht. Das ist also falsch wie Du es geschrieben hast.
sudo gatttool -b C4:7C:8D:61:93:60 --char-read -a 0x38
0x38 liest die Firmware und die Batterie aus. Du hast also Firmware 2.6.2 und Deine Batterie liegt bei 100%
Mach mal bitte ein 0x35
Was passiert wenn Du ein status Request machst?
Thema state. Den state legt erstmal der Entwickler fest, da kann auch drin stehen im Himmel ist Jahrmarkt.
Ich habe es so gemacht wie es mir plausibel erschien. Dazu gehört das nach einem define ein initial kommt. Wenn dann die Timerroutine gestartet wird weiß ich das das Modul activ ist also der Timer läuft. Als nächstes wird der eigentliche read aufgerufen um Daten zu holen. Daher call data.
Und nun kommt es drauf an. Wenn Blocking.pm ins Timeout läuft (15s) dann wird im state ein unreachable geschrieben und es muss INTERVAL Zeit gewartet werden bis wieder die Routine aufgerufen wird und active erscheint.
Wir können das gerne auch demokratisch ändern wenn ihr wollt. Mir ist das schnuppe.
Ich habe eine neue Version. Es gibt nun ein Fehlerhandling. Wenn einmal Readings sauber geschieben wurden sollten diese bei einem Fehler nicht mit 0 oder so überschieben werden.
Hab ich jetzt verstanden. Eine demokratische Änderung ist meinetwegen nicht nötig. Ich hielt es halt irrtümlich für einen Fehler, aber nun ist alles klar. Danke.
Hallo,
erstmal danke für das Modul.
Anbei meine List-Ausgabe:
Internals:
BTMAC C4:7C:8D:60:D9:B1
CFGFN
DEF C4:7C:8D:60:D9:B1
INTERVAL 3600
NAME Blume1
NR 356
STATE active
TYPE XiaomiFlowerSens
VERSION 0.1.48
Readings:
2016-11-12 20:54:30 battery 100
2016-11-12 20:54:30 fertility 0
2016-11-12 20:54:30 firmware 2.6.6
2016-11-12 20:54:30 lux 0
2016-11-12 20:54:30 moisture 0
2016-11-12 20:54:30 state active
2016-11-12 20:54:30 temperature 0
Helper:
Attributes:
room FlowerSens
> char-read-hnd 0x35
Characteristic value/descriptor: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> char-read-hnd 0x38
Characteristic value/descriptor: 64 13 32 2e 36 2e 36
2016.11.12 21:01:29 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 21:01:29 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.12 21:01:32 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.12 21:01:32 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Leider zeigt er keine Daten an. Ich hatte aber stark mit der Bluetoothverbindung zu kämpfen und kämpfe manchmal immer noch damit :-). Kann mich aber erinnern, daß er bei einer der älteren Modulversionen mal die Temperatur angezeigt hat.
Allerdings hatte der Sensor da auch noch die Firmware 2.6.2 drauf.
Wenn ich noch was testen soll gerne.
Viele Grüße
Reinhard
Das Problem ist das die Firmware 2.6.6 noch nicht unterstützt wird. Daher auch die Nullen. Es gibt zwar im Netz Hinweise wie man es machen könnte aber bei uns hat es noch nicht geklappt.
Zitat von: CoolTux am 12 November 2016, 20:08:34
Mach mal bitte ein 0x35
Characteristic value/descriptor: d9 00 00 25 00 00 00 00 00 00 00 00 00 00 00 00
Zitat
Was passiert wenn Du ein status Request machst?
2016.11.13 07:09:51 5: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Request Timer wird aufgerufen
2016.11.13 07:09:51 4: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Starte Blocking Call
2016.11.13 07:09:52 4: Sub XiaomiFlowerSens_Run (FM_Zitronenbaum) - Running nonBlocking
2016.11.13 07:09:52 5: Sub XiaomiFlowerSens (FM_Olivenbaum) - Request Timer wird aufgerufen
2016.11.13 07:09:52 4: Sub XiaomiFlowerSens (FM_Olivenbaum) - Starte Blocking Call
2016.11.13 07:09:52 4: Sub XiaomiFlowerSens_Run (FM_Olivenbaum) - Running nonBlocking
Host is down (112)
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 272.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[1] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 276.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:10:06 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 19904
2016.11.13 07:10:07 3: (FM_Zitronenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.13 07:10:07 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 19914
2016.11.13 07:10:07 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
Host is down (112)
Device or resource busy (16)
2016.11.13 07:14:35 4: Sub XiaomiFlowerSens (FM_Olivenbaum) - Starte Blocking Call
2016.11.13 07:14:35 4: Sub XiaomiFlowerSens_Run (FM_Olivenbaum) - Running nonBlocking
Host is down (112)
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 272.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[1] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 276.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:14:50 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 20164
2016.11.13 07:14:50 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
Host is down (112)
Das gatttool meldet das der Host Down ist. Das soll wohl bedeuten das der Sensor nicht im erkennbaren Modus ist.
@All
Wäre schön wenn ein zwei Leute die Zeit finden und im Netz mal schauen welche anderen Möglichkeiten es noch gibt um 2.6.6 aus zu lesen und das dann testet.
Hallo CoollTux,
habe mit der 2.6.6 Erfolg gehabt.
Nach dem Connect mit gatttool muß zuerst
char-write-req 0x33 A01F
danach gleich
char-read-hnd 0x35
abgesetzt werden.
Hier das Ergebnis :
connect
Attempting to connect to C4:7C:8D:60:D9:B1
Connection successful
Notification handle = 0x0021 value: 00
[C4:7C:8D:60:D9:B1][LE]> char-write-req 0x33 A01F
Characteristic value was written successfully
Notification handle = 0x0021 value: 00
[C4:7C:8D:60:D9:B1][LE]> char-read-hnd 0x35
Characteristic value/descriptor: 61 01 00 1a 00 00 00 00 00 00 02 3c 00 fb 34 9b
Notification handle = 0x0021 value: 00
[C4:7C:8D:60:D9:B1][LE]>
(gatttool:20758): GLib-WARNING **: Invalid file descriptor.
Hoffe das hilft Dir weiter.
Viele Grüße
Reinhard
Hallo Reinhard,
Dann wirst Du Der Testkandidat werden. Hihi. Eigentlich ist es genau das was wir gemacht haben, aber schauen wir mal. Ich baue da heute Nachmittag was mit genau Deinen gatttool Befehlen und Du bist so nett und testest.
Grüße
Leon
Klappt bei mir auch ;) keine Ahnung, was da am Freitag genau los war...
(http://uploads.tapatalk-cdn.com/20161113/6bb7fc414826c72ff7a92d80a37a3a72.png)
Gesendet von iPhone mit Tapatalk
So dann hier mal eine aktuelle Version.
Sofern Eure Firmware noch nicht erkannt wurde werden die korrekten Werte erst beim zweiten Durchlauf erscheinen. Ausschlaggebend ist also das die Firmware korrekt im Reading steht.
Ihr könnt ja set statusRequest machen.
Grüße
Wegen Fehler entfernt!!!
Hab das Modul gerade bei mir eingespielt, seitdem sind meine Defs verschwunden. In der Konfig sind sie noch da
ERROR:
Cannot load module XiaomiFlowerSens Cannot load module XiaomiFlowerSens
Ok. Auf keinen Fall speichern. Ich brauche mal ein fhem log
Fehler gefunden. Kleinen Moment bitte
Zitat von: CoolTux am 13 November 2016, 10:54:16
Ok. Auf keinen Fall speichern. Ich brauche mal ein fhem log
2016.11.13 10:51:36 1: reload: Error:Modul 74_XiaomiFlowerSens deactivated:
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 201.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 201.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 201.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 201.
2016.11.13 10:51:36 0: Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 201.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 201.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 201.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 201.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_Initialize redefined at ./FHEM/74_XiaomiFlowerSens.pm line 44, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_Define redefined at ./FHEM/74_XiaomiFlowerSens.pm line 64, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_Undef redefined at ./FHEM/74_XiaomiFlowerSens.pm line 99, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_Attr redefined at ./FHEM/74_XiaomiFlowerSens.pm line 114, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_stateRequest redefined at ./FHEM/74_XiaomiFlowerSens.pm line 168, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_stateRequestTimer redefined at ./FHEM/74_XiaomiFlowerSens.pm line 175, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_Set redefined at ./FHEM/74_XiaomiFlowerSens.pm line 189, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens redefined at ./FHEM/74_XiaomiFlowerSens.pm line 209, <$fh> line 204.
2016.11.13 10:51:36 1: PERL WARNING: Subroutine XiaomiFlowerSens_Run redefined at ./FHEM/74_XiaomiFlowerSens.pm line 228, <$fh> line 204.
2016.11.13 10:51:36 1: reload: Error:Modul 74_XiaomiFlowerSens deactivated:
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 204.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 204.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 204.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 204.
2016.11.13 10:51:36 0: Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 204.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 271, <$fh> line 204.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 204.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 274, <$fh> line 204.
Sorry für die Aufregung. Nun eine funktionierende Version.
Hallo CoolTux,
anbei deine neue Version, jetzt kommen Werte auch bei 2.6.6
Internals:
BTMAC C4:7C:8D:60:D9:B1
DEF C4:7C:8D:60:D9:B1
INTERVAL 3600
NAME Blume1
NR 281
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.51
Readings:
2016-11-13 11:28:25 battery 100
2016-11-13 11:28:25 fertility 0
2016-11-13 11:28:25 firmware 2.6.6
2016-11-13 11:28:25 lux 82
2016-11-13 11:28:25 moisture 0
2016-11-13 11:21:51 state unreachable
2016-11-13 11:28:25 temperature 37.6
Helper:
Attributes:
room FlowerSens
verbose 5
Logfile:
2016.11.13 11:28:18 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.13 11:28:18 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
Sub XiaomiFlowerSens - WriteForRead: 1
Sub XiaomiFlowerSens - WriteResponse: Characteristic value was written successfully
2016.11.13 11:28:25 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.13 11:28:25 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Aber der Status ist "unreachable", sollte der nicht "active" sein?
Mit Version 2.6.2 klappts auch:
Internals:
BTMAC C4:7C:8D:61:AF:3A
DEF C4:7C:8D:61:AF:3A
INTERVAL 3600
NAME Blume2
NR 286
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.51
Readings:
2016-11-13 11:34:51 battery 100
2016-11-13 11:34:51 fertility 399
2016-11-13 11:34:51 firmware 2.6.2
2016-11-13 11:34:51 lux 65
2016-11-13 11:34:51 moisture 35
2016-11-13 11:34:46 state unreachable
2016-11-13 11:34:51 temperature 22.8
Helper:
Attributes:
room FlowerSens
verbose 5
Aber state auch "unrechable"
Viele Grüße
Reinhard
Ok das mit dem unreachable muss ich mir noch mal anschauen. Da stimmt was noch nicht. Danke erstmal. Die Werte sehen zwar komisch aus aber immer hin Werte.
Ok noch mal nachgelegt. Bitte mal schauen.
Ab sofort gibt es aktuelle Versionen hier (https://github.com/LeonGaultier/fhem-XiaomiFlowerMonitor/archive/devel.zip)
Die Werte bei Blume1 sind wohl deswegen komisch, da der Sensor direkt am Raspberry Pi liegt im Technikschrank, daher keine Fertility, wenig lux und hohe Temperatur :-)
Bei der neuesten Version sind meine Definitionen nach Neustart weg.
Log-Meldung:
2016.11.13 12:14:34 1: PERL WARNING: Subroutine XiaomiFlowerSens_Initialize redefined at ./FHEM/74_XiaomiFlowerSens.pm line 44.
2016.11.13 12:14:34 1: PERL WARNING: Subroutine XiaomiFlowerSens_Define redefined at ./FHEM/74_XiaomiFlowerSens.pm line 64.
2016.11.13 12:14:34 1: PERL WARNING: Subroutine XiaomiFlowerSens_Undef redefined at ./FHEM/74_XiaomiFlowerSens.pm line 99.
2016.11.13 12:14:34 1: PERL WARNING: Subroutine XiaomiFlowerSens_Attr redefined at ./FHEM/74_XiaomiFlowerSens.pm line 114.
2016.11.13 12:14:34 1: PERL WARNING: Variable "$name" is not imported at ./FHEM/74_XiaomiFlowerSens.pm line 172.
2016.11.13 12:14:34 1: reload: Error:Modul 74_XiaomiFlowerSens deactivated:
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 172.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 172.
2016.11.13 12:14:34 0: Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 172.
Global symbol "$name" requires explicit package name at ./FHEM/74_XiaomiFlowerSens.pm line 172.
Ist das die Version aus dem GitHub?
Ok hab es gefunden. Da fehlt mir eine Kleinigkeit. Moment
Ok Fehlerbereinigt. Bitte noch mal den selben Link.
Wenn das jetzt dann vernünftig läuft mache ich einen neuen Thread auf und fasse mal alles zusammen.
Zitat von: CoolTux am 13 November 2016, 12:41:09
Ok Fehlerbereinigt. Bitte noch mal den selben Link.
Wenn das jetzt dann vernünftig läuft mache ich einen neuen Thread auf und fasse mal alles zusammen.
Besteht die Möglichkeit das du dein Github entsprechend anpasst, das sich das Modul in der Entwicklungszeit per "third party" update (http://www.fhemwiki.de/wiki/Update)einspielen lässt?
Wenn du mir sagst wie ich was anpassen muß können wir gerne drüber reden.
Danke CoolTux,
mit der neuesten GitHub-Version funktioniert es jetzt.
Es klappt mit beiden Versionen (2.6.2 und 2.6.6).
State ist jetzt bei beiden, wenn die Abfrage klappt "active".
Werte kommen bei beiden Versionen an.
Dann lassen wir das jetzt mal so stehen und schauen was die anderen die Tage sagen. Wenn das so geht erstelle ich einen eigenen Thread.
Zitat von: CoolTux am 13 November 2016, 12:48:56
Wenn du mir sagst wie ich was anpassen muß können wir gerne drüber reden.
Danke für deine Rückmeldung!
Das wären:
Kontrolldatei im Repo
optional wäre noch ein Changed File, damit man Infos zu Änderungen beim Update angezeigt werden
Ordnerstruktur/Pfad wo das Modul dann in FHEM liegen soll
Als kleine Vorlage das: ESPEasy Modul (https://github.com/ddtlabs/ESPEasy)
Bei mir haut nun auch alles soweit hin :)
Den Fehler vom Freitag habe ich nun auch gefunden. Ohne -I geht's ja anscheinend gar nicht und meine Abfragen waren die hier.
Falsche von Freitag:
gatttool -I
connect C4:7C:8D:61:86:4D
char-write-cmd 0x33 A01F
char-read-hnd 0x35
Richtig von gestern ist:
gatttool -I
connect C4:7C:8D:61:86:4D
char-write-req 0x33 A01F
char-read-hnd 0x35
Und das req hatten wir ja ohne -I getestet ;)
Muss Dich enttäuschen. Das -I macht das Modul gar nicht.
gatttool -b $mac --char-write-req -a 0x33 -n A01F
So !acht es das Modul.
Hi Leon.
Also die 0.1.55 funktioniert gut bei mir.
Alle Sensoren haben Version 2.6.2
Nur bei der Abfrage gibt es einen Logeintrag der etwas mit der Version zutun zu haben scheint:
PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
Sonst alles prima.
Tach.
Eine Frage hätte ich dann doch noch.
Ich hab jetzt wieder mehrere laufen und nach einen restart des RPi machen alle brav call data.
Problem ist, das machen sie alle gleichzeitig.
Und bei einem Standard -interval machen sie das auch nach einer Stunde wieder brav ... und wieder gleichzeitig.
Das Resultat ist, dass immer nur einer Werte bekommt, weil gatttool ja für die anderen gerade aktiv ist.
So sieht's im Log aus:
2016.11.13 14:48:28 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Request Timer wird aufgerufen
2016.11.13 14:48:28 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Starte Blocking Call
2016.11.13 14:48:28 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze01) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:30 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze02) - Request Timer wird aufgerufen
2016.11.13 14:48:30 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze02) - Starte Blocking Call
2016.11.13 14:48:30 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze02) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:31 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze03) - Request Timer wird aufgerufen
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:31 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze03) - Starte Blocking Call
2016.11.13 14:48:32 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze03) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:34 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:34 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze04) - Request Timer wird aufgerufen
2016.11.13 14:48:34 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze04) - Starte Blocking Call
2016.11.13 14:48:34 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze04) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:36 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze05) - Request Timer wird aufgerufen
2016.11.13 14:48:36 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze05) - Starte Blocking Call
2016.11.13 14:48:37 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze05) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:37 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
connect: Device or resource busy (16)
2016.11.13 14:48:38 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze03) - Rückgabe an Auswertungsprogramm beginnt
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:39 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
connect: Device or resource busy (16)
2016.11.13 14:48:43 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze05) - Rückgabe an Auswertungsprogramm beginnt
2016.11.13 14:48:43 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 10009
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
grep: Schreibfehler: Datenübergabe unterbrochen (broken pipe)
2016.11.13 14:48:43 3: (rmt_MI_Pflanze01) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.13 14:48:44 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze04) - Rückgabe an Auswertungsprogramm beginnt
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:48:45 4: Sub XiaomiFlowerSens_Done (rmt_MI_Pflanze04) - Abschluss!
2016.11.13 14:48:45 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 10030
2016.11.13 14:48:46 3: (rmt_MI_Pflanze02) - The BlockingCall Process terminated unexpectedly. Timedout
grep: Schreibfehler: Datenübergabe unterbrochen (broken pipe)
2016.11.13 14:50:13 1: TRX_SECURITY_parse_X10Sec() UNDEFINED TRX_MS10A_0c44 TRX_SECURITY MS10A 0c44 motion
2016.11.13 14:50:13 3: TRX_SECURITY_parse_X10Sec() Unknown device TRX_MS10A_0c44, please define it
2016.11.13 14:53:28 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Request Timer wird aufgerufen
2016.11.13 14:53:28 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Starte Blocking Call
2016.11.13 14:53:28 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze01) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:31 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze02) - Request Timer wird aufgerufen
2016.11.13 14:53:31 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze02) - Starte Blocking Call
2016.11.13 14:53:31 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze02) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:33 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze03) - Request Timer wird aufgerufen
2016.11.13 14:53:33 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze03) - Starte Blocking Call
2016.11.13 14:53:33 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze03) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:35 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
2016.11.13 14:53:35 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze04) - Request Timer wird aufgerufen
2016.11.13 14:53:35 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze04) - Starte Blocking Call
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:36 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze04) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:38 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
2016.11.13 14:53:39 5: Sub XiaomiFlowerSens (rmt_MI_Pflanze05) - Request Timer wird aufgerufen
connect: Device or resource busy (16)
2016.11.13 14:53:39 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze03) - Rückgabe an Auswertungsprogramm beginnt
2016.11.13 14:53:39 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze05) - Starte Blocking Call
2016.11.13 14:53:39 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze05) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:42 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
connect: Device or resource busy (16)
2016.11.13 14:53:42 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze04) - Rückgabe an Auswertungsprogramm beginnt
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:43 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 10219
2016.11.13 14:53:44 3: (rmt_MI_Pflanze01) - The BlockingCall Process terminated unexpectedly. Timedout
grep: Schreibfehler: Datenübergabe unterbrochen (broken pipe)
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:46 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze05) - Rückgabe an Auswertungsprogramm beginnt
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 14:53:47 4: Sub XiaomiFlowerSens_Done (rmt_MI_Pflanze05) - Abschluss!
2016.11.13 14:53:47 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 10252
grep: Schreibfehler: Datenübergabe unterbrochen (broken pipe)
2016.11.13 14:53:47 3: (rmt_MI_Pflanze02) - The BlockingCall Process terminated unexpectedly. Timedout
Meine Frage.
Gibts einen Trick, die Abfragen zeitlich versetzt laufen zu lassen?
Cheers
Eigentlich sollten die gatttools Aufrufe sich nicht gegenseitig blockieren, so lange es nicht die selbe MAC ist. Man kann also laut BT Doku mehrere BT Endgeräte gleichzeitig abfragen. Daher habe ich einen scheck drin der zwar schaut ob das gatttool läuft, aber halt nur für die eigene MAC. Ich schaue es mir noch mal an.
Was mich bisschen wundert ist Deine
2016.11.13 14:48:34 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
Meldung. Das sollte nun wirklich nicht sein. Gib mal bitte ein aktuelles list von 2 Devices.
Können bitte die anderen auch mal das log nach dieser Meldung durchsuchen. Danke
Zitat von: CoolTux am 13 November 2016, 15:31:13Können bitte die anderen auch mal das log nach dieser Meldung durchsuchen. Danke
Findet sich auch in meinem Log:
PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
BTMAC C4:7C:8D:61:5F:89
DEF C4:7C:8D:61:5F:89
INTERVAL 3600
NAME Blume1
NR 48
STATE active
TYPE XiaomiFlowerSens
VERSION 0.1.55
Helper:
Dblog:
Battery:
Mydblog:
TIME 1479047305.86783
VALUE 100
Fertility:
Mydblog:
TIME 1479047305.86783
VALUE 0
Firmware:
Mydblog:
TIME 1479047305.86783
VALUE 2.6.2
Lux:
Mydblog:
TIME 1479047305.86783
VALUE 0
Moisture:
Mydblog:
TIME 1479047305.86783
VALUE 0
State:
Mydblog:
TIME 1479047305.86783
VALUE active
Temperature:
Mydblog:
TIME 1479047305.86783
VALUE 0
Readings:
2016-11-13 15:28:25 battery 100
2016-11-13 15:28:25 fertility 0
2016-11-13 15:28:25 firmware 2.6.2
2016-11-13 15:28:25 lux 0
2016-11-13 15:28:25 moisture 0
2016-11-13 15:28:25 state active
2016-11-13 15:28:25 temperature 0
Helper:
Attributes:
room FlowerSens
Tante EDIT sagt:
Das ist ebenfalls noch aufgetaucht:
2016.11.13 15:27:54 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
2016.11.13 15:28:09 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 10746
2016.11.13 15:28:09 3: (Blume1) - The BlockingCall Process terminated unexpectedly. Timedout
connect error: Connection timed out (110)
Zitat von: CoolTux am 13 November 2016, 15:31:13
Was mich bisschen wundert ist Deine
2016.11.13 14:48:34 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
Meldung. Das sollte nun wirklich nicht sein. Gib mal bitte ein aktuelles list von 2 Devices.
Klar, bitte sehr
Internals:
BTMAC C4:7C:8D:61:2A:AE
DEF C4:7C:8D:61:2A:AE
INTERVAL 2300
NAME rmt_MI_Pflanze03
NR 254
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.55
Readings:
2016-11-13 15:18:47 battery 97
2016-11-13 15:18:47 fertility 296
2016-11-13 15:18:47 firmware 2.6.2
2016-11-13 15:18:47 lux 225
2016-11-13 15:18:47 moisture 20
2016-11-13 15:28:48 state unreachable
2016-11-13 15:18:47 temperature 17.6
Helper:
Attributes:
alias Basilikum (Küche)
interval 2300
room FlowerSens
sortby 03
stateFormat state
verbose 5
Internals:
BTMAC C4:7C:8D:61:4F:73
DEF C4:7C:8D:61:4F:73
INTERVAL 2400
NAME rmt_MI_Pflanze05
NR 258
STATE T:17.8°C H:25% D:7 L:271 B:100
TYPE XiaomiFlowerSens
VERSION 0.1.55
Readings:
2016-11-13 15:28:56 battery 100
2016-11-13 15:28:56 fertility 7
2016-11-13 15:28:56 firmware 2.6.2
2016-11-13 15:28:56 lux 271
2016-11-13 15:28:56 moisture 25
2016-11-13 15:28:56 state active
2016-11-13 15:28:56 temperature 17.8
Helper:
Attributes:
alias Kakteenblüte (Küche)
interval 2400
room FlowerSens
sortby 04
stateFormat T:temperature°C H:moisture% D:fertility L:lux B:battery
verbose 5
So erstmal die Sache mit der nicht definierten Variable gelöst
aktuelle Versionen hier (https://github.com/LeonGaultier/fhem-XiaomiFlowerMonitor/archive/devel.zip)
Bitte alle mal schauen. Sowohl die 2.6.2er als auch die 2.6.6er Kandidaten.
Über das andere mache ich mir Gedanken.
Zitat von: CoolTux am 13 November 2016, 15:55:52
Bitte alle mal schauen. Sowohl die 2.6.2er als auch die 2.6.6er Kandidaten.
Vom 2.6.2er Kandidat:
perfekt
Kurz noch mal erklärt. Bitte lasst Eure Devices mit Verbose 5 laufen und schaut nach ungewöhnlichen Meldungen. Wenn Ihr Euch nicht Sicher seit dann einfach das ganze hier posten.
Grüße
Noch ein interessantes Phänomen.
Zwei meiner Sensoren aktuallisieren sich gar nicht mehr über das Modul.
Ausgerechnet die beiden ersten.
Bei beiden werden keine Readings erzeugt.
Auch "manuell" über statusRequest kommt der timeout.
Kurz mit dem "alten" Script getestet; funktioniert.
Mit dem Modul:
Internals:
BTMAC C4:7C:8D:61:BA:AA
DEF C4:7C:8D:61:BA:AA
INTERVAL 2100
NAME rmt_MI_Pflanze01
NR 252
STATE unreachable
TYPE XiaomiFlowerSens
VERSION 0.1.56
Readings:
2016-11-13 18:55:09 state unreachable
Helper:
Attributes:
alias WeihnachtsStern2015
interval 2100
room FlowerSens
sortby 01
stateFormat state
verbose 5
Das schreibt er ins Log:
2016.11.13 19:12:21 1: Logfile gelöscht
2016.11.13 19:12:32 4: Sub XiaomiFlowerSens (rmt_MI_Pflanze01) - Starte Blocking Call
2016.11.13 19:12:32 4: Sub XiaomiFlowerSens_Run (rmt_MI_Pflanze01) - Running nonBlocking
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.13 19:12:47 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 18022
2016.11.13 19:12:48 3: (rmt_MI_Pflanze01) - The BlockingCall Process terminated unexpectedly. Timedout
grep: Schreibfehler: Datenübergabe unterbrochen (broken pipe)
MIt dem Script:
Internals:
CFGFN
NAME MI_Pflanze01
NR 345
STATE done
TYPE dummy
Readings:
2016-11-13 18:59:22 Battery 99
2016-11-13 18:59:17 Duenger 353
2016-11-13 18:59:13 Feuchtigkeit 30
2016-11-13 18:59:25 Firmware 2.6.2
2016-11-13 18:59:09 Lux 32
2016-11-13 18:59:05 Temperatur 21.8
2016-11-13 18:58:53 gattool ---
2016-11-13 18:58:57 gattool_35 Characteristic value/descriptor: da 00 00 20 00 00 00 1e 61 01 00 00 00 00 00 00
2016-11-13 18:59:01 gattool_38 Characteristic value/descriptor: 63 10 32 2e 36 2e 32
2016-11-13 18:59:29 state done
Attributes:
room FlowerSens
Die anderen funktionieren klaglos!?!
Merkwürdig
Mach mal ein ps ax | grep gatttool in der Linuxkonsole
Ich habe gerade mal die aktuelle Version eingespielt und bei mir laufen beide ohne Probleme :)
Hier mal die Logs (jeweils mit verbose 5)
2.6.2:
2016.11.13 20:13:53 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.13 20:13:53 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.13 20:13:57 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.13 20:13:57 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
2.6.6:
2016.11.13 20:10:50 4: Sub XiaomiFlowerSens (Blume2) - Starte Blocking Call
2016.11.13 20:10:50 4: Sub XiaomiFlowerSens_Run (Blume2) - Running nonBlocking
2016.11.13 20:10:55 4: Sub XiaomiFlowerSens_Run (Blume2) - Rückgabe an Auswertungsprogramm beginnt
2016.11.13 20:10:55 4: Sub XiaomiFlowerSens_Done (Blume2) - Abschluss!
Zitat von: CoolTux am 13 November 2016, 19:39:30
Mach mal ein ps ax | grep gatttool in der Linuxkonsole
795 ? S 0:00 gatttool -b C4:7C:8D:61:BA:AA --char-write -a 0x33 -n A01F
906 ? S 0:00 gatttool -b C4:7C:8D:61:2A:A8 --char-write -a 0x33 -n A01F
944 ? S 0:00 gatttool -b C4:7C:8D:61:2A:A8 --char-write -a 0x33 -n A01F
979 ? S 0:00 gatttool -b C4:7C:8D:61:2A:A8 --char-write -a 0x33 -n A01F
1014 ? S 0:00 gatttool -b C4:7C:8D:61:2A:A8 --char-write -a 0x33 -n A01F
20142 pts/0 S+ 0:00 grep gatttool
Das sind die zwei Verbrecher, also deren Mac-Adresse !?
Kill die mal bitte
kill -9 PID
Kla
Zitat von: CoolTux am 13 November 2016, 21:35:25
Kill die mal bitte
kill -9 PID
Klasse, Danke !!!
Jetzt tun sie es wieder.
Müsste man das in Auge behalten, oder haben die sich Aufgrund der Testerei "verschluckt"?
Schwer zu sagen. Einfach mal die Tage bisschen mehr hinschauen bitte.
Zitat von: CoolTux am 13 November 2016, 21:56:38
Einfach mal die Tage bisschen mehr hinschauen bitte.
Jawoll !!! :)
Ich mach jetzt mal Log-Files, damit man Verhalten dokumentiert bekommt.
Nochmals danke
gern geschehen. So langsam kann man dann mal sich Gedanken zu einer kleinen Datenbank machen. Entweder man denkt darüber nach extern was an zu zapfen oder wir machen was eigenes.
gute idee.
Hab mein System jetzt auch auf dem aktuellen Stand gebracht, hab aber immer noch die Fehlermeldung host down:
Sub XiaomiFlowerSens - WriteResponse:
2016.11.13 22:56:41 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 30901
2016.11.13 22:56:41 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
Host is down (112)
Sieht so aus als wenn das Teil zu weit weg ist, kann das sein?
Teste mal mit gatttool direkt in der Konsole.
Ich bekomme ebenfalls Fehlermeldungen mit der Version 0.1.51.
2016.11.14 15:30:19 5: Sub XiaomiFlowerSens (Blume1) - Request Timer wird aufgerufen
2016.11.14 15:30:19 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.14 15:30:19 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.14 15:30:20 1: PERL WARNING: Use of uninitialized value $wfr in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 271.
2016.11.14 15:30:20 1: PERL WARNING: printf() on closed filehandle SOCK at ./FHEM/74_XiaomiFlowerSens.pm line 271.
2016.11.14 15:30:20 1: PERL WARNING: Use of uninitialized value $wfr in numeric eq (==) at ./FHEM/74_XiaomiFlowerSens.pm line 273.
2016.11.14 15:30:20 1: PERL WARNING: Use of uninitialized value $wresp in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.14 15:30:20 1: PERL WARNING: printf() on closed filehandle SOCK at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.14 15:30:22 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.14 15:30:22 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!
Internals:
BTMAC C4:7C:8D:61:A5:18
CFGFN
DEF C4:7C:8D:61:A5:18
INTERVAL 3600
NAME Blume1
NR 343
STATE active
TYPE XiaomiFlowerSens
VERSION 0.1.51
Readings:
2016-11-14 15:30:22 battery 100
2016-11-14 15:30:22 fertility 465
2016-11-14 15:30:22 firmware 2.6.2
2016-11-14 15:30:22 lux 551
2016-11-14 15:30:22 moisture 25
2016-11-14 15:30:22 state active
2016-11-14 15:30:22 temperature 20.9
Helper:
Attributes:
group Pflanzen
room Wohnzimmer
verbose 5
Hab gesehen, dass schon Version 0.1.56 draussen ist, die kann ich aber nicht finden.
Habe ich was übersehen? Hatte allerdings mehrmals geguckt.
Ist jetzt im GitHub. Sollte als Link paar Threads weiter oben stehen.
Zitat von: Invers am 14 November 2016, 15:45:35Hab gesehen, dass schon Version 0.1.56 draussen ist, die kann ich aber nicht finden.
Habe ich was übersehen? Hatte allerdings mehrmals geguckt.
Befindet sich jetzt im Github: Antwort von CoolTux inkl. Link (https://forum.fhem.de/index.php/topic,57787.msg520899.html#msg520899)
Nachdem ich den Link gefunden hattee, fand ich auch den Beitrag von Pyromane.
Die Welt ist nicht gerecht. Lacht.
Danke euch beiden.
Zitat von: CoolTux am 14 November 2016, 07:53:03
Sieht so aus als wenn das Teil zu weit weg ist, kann das sein?
Teste mal mit gatttool direkt in der Konsole.
Mit dem gatttool übe die Konsole kann ich die Sensoren erreichen. Daran kann es nicht liegen.
Kann ich mir nicht erklären. Das Modul macht nichts anderes. Wie sieht dein gatttool Aufruf aus? Läuft noch was anderes bezüglich BT, welche Modulversion hast Du jetzt aktuell?
Zitat von: CoolTux am 14 November 2016, 18:23:44
Kann ich mir nicht erklären. Das Modul macht nichts anderes. Wie sieht dein gatttool Aufruf aus? Läuft noch was anderes bezüglich BT, welche Modulversion hast Du jetzt aktuell?
[C4:7C:8D:61:93:60][LE]> char-read-hnd 0x38
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
[C4:7C:8D:61:93:60][LE]> char-read-hnd 0x35
Characteristic value/descriptor: cd 00 00 69 00 00 00 00 00 00 00 00 00 00 00 00
Ich hatte noch das PRESENCE Modul mit drin für die beiden. Hab ich jetzt mal rausgenommen. Dann ist noch ein Handy dran, ein
BT Lautsprecher und der SMA Wechselrichter (je als PRESENCE eingebunden).
Im Protokoll steht jetzt folgendes:
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.14 19:43:05 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 15031
2016.11.14 19:43:05 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
Und Installiert ist aktuell Version 1.56, nachdem ich die heute gefunden hab.
Gedanken zur Datenbankplanung
Bezüglich Logging der Werte musste ich leider feststellen, dass meine Pflanze wohl in den Topf pinkelt.
Die Werte steigen, obwohl keiner giesst. :)
Ich will nicht hoffen, dass der Sensor so schnell altert.
2016-11-13_23:39:05 Blume1 battery: 100
2016-11-13_23:39:05 Blume1 temperature: 20.3
2016-11-13_23:39:05 Blume1 lux: 26
2016-11-13_23:39:05 Blume1 moisture: 21
2016-11-13_23:39:05 Blume1 fertility: 356
2016-11-14_00:39:06 Blume1 battery: 100
2016-11-14_00:39:06 Blume1 temperature: 20.1
2016-11-14_00:39:06 Blume1 lux: 6
2016-11-14_00:39:06 Blume1 moisture: 21
2016-11-14_00:39:06 Blume1 fertility: 361
2016-11-14_01:39:08 Blume1 battery: 100
2016-11-14_01:39:08 Blume1 temperature: 19.8
2016-11-14_01:39:08 Blume1 lux: 6
2016-11-14_01:39:08 Blume1 moisture: 21
2016-11-14_01:39:08 Blume1 fertility: 367
2016-11-14_02:39:07 Blume1 battery: 100
2016-11-14_02:39:07 Blume1 temperature: 19.5
2016-11-14_02:39:07 Blume1 lux: 6
2016-11-14_02:39:07 Blume1 moisture: 21
2016-11-14_02:39:07 Blume1 fertility: 371
2016-11-14_03:39:05 Blume1 battery: 100
2016-11-14_03:39:05 Blume1 temperature: 19.4
2016-11-14_03:39:05 Blume1 lux: 6
2016-11-14_03:39:05 Blume1 moisture: 21
2016-11-14_03:39:05 Blume1 fertility: 377
2016-11-14_04:39:10 Blume1 battery: 100
2016-11-14_04:39:10 Blume1 temperature: 0
2016-11-14_04:39:10 Blume1 lux: 0
2016-11-14_04:39:10 Blume1 moisture: 0
2016-11-14_04:39:10 Blume1 fertility: 0
2016-11-14_05:39:06 Blume1 battery: 100
2016-11-14_05:39:06 Blume1 temperature: 19.1
2016-11-14_05:39:06 Blume1 lux: 6
2016-11-14_05:39:06 Blume1 moisture: 22
2016-11-14_05:39:06 Blume1 fertility: 385
2016-11-14_06:39:08 Blume1 battery: 100
2016-11-14_06:39:08 Blume1 temperature: 20.6
2016-11-14_06:39:08 Blume1 lux: 6
2016-11-14_06:39:08 Blume1 moisture: 23
2016-11-14_06:39:08 Blume1 fertility: 385
2016-11-14_07:39:10 Blume1 battery: 100
2016-11-14_07:39:10 Blume1 temperature: 20.6
2016-11-14_07:39:10 Blume1 lux: 0
2016-11-14_07:39:10 Blume1 moisture: 23
2016-11-14_07:39:10 Blume1 fertility: 404
2016-11-14_08:21:12 Blume1 battery: 100
2016-11-14_08:21:12 Blume1 temperature: 20.8
2016-11-14_08:21:12 Blume1 lux: 63
2016-11-14_08:21:12 Blume1 moisture: 23
2016-11-14_08:21:12 Blume1 fertility: 408
2016-11-14_09:21:14 Blume1 battery: 100
2016-11-14_09:21:14 Blume1 temperature: 0
2016-11-14_09:21:14 Blume1 lux: 0
2016-11-14_09:21:14 Blume1 moisture: 0
2016-11-14_09:21:14 Blume1 fertility: 0
2016-11-14_10:21:12 Blume1 battery: 100
2016-11-14_10:21:12 Blume1 temperature: 20.8
2016-11-14_10:21:12 Blume1 lux: 2286
2016-11-14_10:21:12 Blume1 moisture: 24
2016-11-14_10:21:12 Blume1 fertility: 420
2016-11-14_11:21:13 Blume1 battery: 100
2016-11-14_11:21:13 Blume1 temperature: 20.9
2016-11-14_11:21:13 Blume1 lux: 5607
2016-11-14_11:21:13 Blume1 moisture: 24
2016-11-14_11:21:13 Blume1 fertility: 428
2016-11-14_12:21:14 Blume1 battery: 100
2016-11-14_12:21:14 Blume1 temperature: 0
2016-11-14_12:21:14 Blume1 lux: 0
2016-11-14_12:21:14 Blume1 moisture: 0
2016-11-14_12:21:14 Blume1 fertility: 0
2016-11-14_13:21:12 Blume1 battery: 100
2016-11-14_13:21:12 Blume1 temperature: 21.2
2016-11-14_13:21:12 Blume1 lux: 1938
2016-11-14_13:21:12 Blume1 moisture: 24
2016-11-14_13:21:12 Blume1 fertility: 445
2016-11-14_13:30:23 Blume1 battery: 100
2016-11-14_13:30:23 Blume1 temperature: 21.2
2016-11-14_13:30:23 Blume1 lux: 1877
2016-11-14_13:30:23 Blume1 moisture: 25
2016-11-14_13:30:23 Blume1 fertility: 447
2016-11-14_14:30:25 Blume1 battery: 100
2016-11-14_14:30:25 Blume1 temperature: 21
2016-11-14_14:30:25 Blume1 lux: 1172
2016-11-14_14:30:25 Blume1 moisture: 25
2016-11-14_14:30:25 Blume1 fertility: 457
2016-11-14_15:30:22 Blume1 battery: 100
2016-11-14_15:30:22 Blume1 temperature: 20.9
2016-11-14_15:30:22 Blume1 lux: 551
2016-11-14_15:30:22 Blume1 moisture: 25
2016-11-14_15:30:22 Blume1 fertility: 465
2016-11-14_16:30:23 Blume1 battery: 100
2016-11-14_16:30:23 Blume1 temperature: 20.4
2016-11-14_16:30:23 Blume1 lux: 6
2016-11-14_16:30:23 Blume1 moisture: 25
2016-11-14_16:30:23 Blume1 fertility: 474
2016-11-14_16:59:33 Blume1 battery: 100
2016-11-14_16:59:33 Blume1 temperature: 20.3
2016-11-14_16:59:33 Blume1 lux: 43
2016-11-14_16:59:33 Blume1 moisture: 25
2016-11-14_16:59:33 Blume1 fertility: 478
2016-11-14_17:59:31 Blume1 battery: 100
2016-11-14_17:59:31 Blume1 temperature: 20.2
2016-11-14_17:59:31 Blume1 lux: 26
2016-11-14_17:59:31 Blume1 moisture: 25
2016-11-14_17:59:31 Blume1 fertility: 487
2016-11-14_18:59:32 Blume1 battery: 100
2016-11-14_18:59:32 Blume1 temperature: 20.1
2016-11-14_18:59:32 Blume1 lux: 43
2016-11-14_18:59:32 Blume1 moisture: 26
2016-11-14_18:59:32 Blume1 fertility: 493
Der Aufbau einer Datenbank scheint mir sehr aufwändig zu sein.
Man müsste ja Werte von verschiedenen Pflanzen unter verschiedenen Bedingungen sammeln. Dann müsste man wissen, welche Werte für welche Pflanze optimal sind.
Gehen wir mal von nur 200 verschiedenen Zimmerpflanzen aus, wird das eine ganz schöne Arbeit.
Vorher müsste auch mal jemand 2-3 Sensoren gleichzeitig in den selben Topf stecken um zu sehen, ob und wie hoch Abweichungen in den Messungen auftreten.
Sollte dabei ein Sensor Feuchtigkeit 55 und einer daneben 75 messen (Beispiel), dann brauchen wir auch noch eine Korrekturmöglichkeit, so wie bei den Thermometern. So eine Art Eichfunktion wäre auf jeden Fall wünschenswert, egal ob mit, oder ohne Datenbank. Nur so kann man ja Sensoren auch mal tauschen oder Alterung ausgleichen.
Bei einigen Messwerten, wie Helligkeit, wird das wohl gar nicht so einfach gehen. Es würde da vermutlich nichts nützen, von einem Wert Lux z.B. zum Ausgleich etwas abzuziehen oder hinzu zu rechnen.
Man braucht also einen Plan, um anfangen zu können. Die Logs für sich alleine sind fast wertlos.
Eigentlich kann man da nur die Bodenfeuchte für eine Ansage nutzen, dass die Pflanze gegossen werden sollte. Selbst das ist mit Vorsicht zu geniessen.
Zitat von: baukater am 14 November 2016, 19:46:26
[C4:7C:8D:61:93:60][LE]> char-read-hnd 0x38
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
[C4:7C:8D:61:93:60][LE]> char-read-hnd 0x35
Characteristic value/descriptor: cd 00 00 69 00 00 00 00 00 00 00 00 00 00 00 00
Ich hatte noch das PRESENCE Modul mit drin für die beiden. Hab ich jetzt mal rausgenommen. Dann ist noch ein Handy dran, ein
BT Lautsprecher und der SMA Wechselrichter (je als PRESENCE eingebunden).
Im Protokoll steht jetzt folgendes:
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
(Sub XiaomiFlowerSens_Run) - gatttool noch aktiv, wait 0.5s for new check
2016.11.14 19:43:05 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 15031
2016.11.14 19:43:05 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
Und Installiert ist aktuell Version 1.56, nachdem ich die heute gefunden hab.
Also wenn da noch so viele andere BT Geräte mit dran sind können die sich schon behindern. Mach mal ein ps ax | grep gatttool
Zitat von: CoolTux am 14 November 2016, 19:55:20
Also wenn da noch so viele andere BT Geräte mit dran sind können die sich schon behindern. Mach mal ein ps ax | grep gatttool
Dann bekomme ich folgende Info:
15744 pts/0 S+ 0:00 grep --color=auto gatttool
Ok sieht sauber aus. Dennoch blockiert irgendwas. Kannst du zu Testzwecken mal die ganzen anderen BT Sachen raus nehmen?
Zitat von: CoolTux am 14 November 2016, 20:19:18
Ok sieht sauber aus. Dennoch blockiert irgendwas. Kannst du zu Testzwecken mal die ganzen anderen BT Sachen raus nehmen?
Die PRESENCE-Teile hab ich mal deaktiviert. Handy und Lautsprecher kann ich abschalten, einzig der Wechselrichter bleibt noch über.
Also die Problematik mit steigendem Feichtugkeitsgrad habe ich auch. Auch der Dünger Grad steigt bei mir irgendwie.... war zu Anfang bei ca. bei 50 und mittlerweile bei über 300 und das ohne zwischendurch umzustecken.
Gesendet von iPhone mit Tapatalk
Habe jetzt auch 6 (geplant 10) von den Teilen im Einsatz. In FHEM habe ich sie allerdings über Dummies eingebunden, gefüllt werden diese "von außen" über ein schedultes Shellscript, welches nacheinander alle in der zugehörigen Konfigurationsdatei angegeben Sensoren abfragt. Somit finden die BT-Abfragen nacheinander statt und es kommt zu weniger Störungen. Außerdem erfolgt die Abfrage über mehrere Raspis (altes 1er Modell reicht), da die Reichweite der Sensoren per BT nicht so groß ist.
Für den ssh-Zugriff muss natürlich der ssh-key auf die Remote-Pi's verteilt werden, damit der Zugriff ohne Passworteingabe möglich ist.
Falls es interessiert, das Script anbei (Sensor-ID habe ich einfach nur manuell vergeben und damit die Sensoren beschriftet, hat sonst keine weitere Bedeutung):
flowermate.cfg
############################################################################################################
#FHEM-Dummy-Device Sensor #ID BT-Mac-Adresse Host/IP zur Abfrage, leer für lokal
############################################################################################################
Agave 6 C4:7C:8D:61:xx:xx FHEMplant-01
Kaktus 1 C4:7C:8D:61:xx:xx FHEMplant-02
Palme 4 C4:7C:8D:61:xx:xx
flowermate.sh
#!/bin/bash
date
echo
FHEM="perl /opt/fhem/fhem.pl 7072"
while read LINE
do
{
# Leerzeilen überspringen
[[ -z $LINE ]] && continue
# Tabs auflösen, Leerzeichen am Anfang+Ende entfernen
LINE=$(echo $LINE | expand | tr -s " " | xargs)
# Kommentarzeilen überspringen
[[ "${LINE:0:1}" == "#" ]] && continue
#echo $LINE
FHEMDEV=$(echo $LINE | cut -d" " -f1)
ID=$(echo $LINE | cut -d" " -f2)
BTMAC=$(echo $LINE | cut -d" " -f3)
HOST=$(echo $LINE | cut -d" " -f4)
echo $FHEMDEV
[[ ! -z $HOST ]] && SSH="ssh root@$HOST" || SSH=""
stringA=$($SSH gatttool -b $BTMAC --char-read --handle=0x35) || continue
# FHEMDEV anlegen falls es nicht existiert
if [[ -z $($FHEM "list $FHEMDEV:FILTER=TYPE=dummy") ]]; then
$FHEM "def $FHEMDEV dummy; attr $FHEMDEV group Pflanzen; save"
echo " --> $FHEMDEV TYPE dummy neu angelegt"
fi
FHEMCMD="setreading $FHEMDEV BT-MAC $BTMAC"
echo " BT-MAC $BTMAC"
FHEMCMD="$FHEMCMD; setreading $FHEMDEV Host $HOST"
echo " Host $HOST"
FHEMCMD="$FHEMCMD; setreading $FHEMDEV ID $ID"
echo " ID $ID"
stringT=${stringA:36:2}${stringA:33:2}
stringT=$(echo "$stringT" | tr a-f A-F)
stringT=$(echo "ibase=16; $stringT" | bc)
stringT=$(echo "scale=1; $stringT / 10" | bc)
FHEMCMD="$FHEMCMD; setreading $FHEMDEV Temp $stringT"
echo " Temp $stringT °C"
stringL=${stringA:45:2}${stringA:42:2}
stringL=$(echo "$stringL" | tr a-f A-F)
stringL=$(echo "ibase=16; $stringL" | bc)
FHEMCMD="$FHEMCMD; setreading $FHEMDEV Lux $stringL"
echo " Lux $stringL Lux"
stringM=${stringA:54:2}
stringM=$(echo "$stringM" | tr a-f A-F)
stringM=$(echo "ibase=16; $stringM" | bc)
FHEMCMD="$FHEMCMD; setreading $FHEMDEV Moisture $stringM"
echo " Moisture $stringM %"
stringF=${stringA:60:2}${stringA:57:2}
stringF=$(echo "$stringF" | tr a-f A-F)
stringF=$(echo "ibase=16; $stringF" | bc)
FHEMCMD="$FHEMCMD; setreading $FHEMDEV Fertility $stringF"
echo " Fertility $stringF us/cm"
$FHEM "$FHEMCMD"
echo
} < /dev/null
done < /opt/fhem/myfiles/flowermate.cfg
Ich habe gerade eine neue Develversion hoch geladen.
Neu ist das ich dem Interval einen addierten Zufallswert mitgebe von max 300s
Das sollte hoffentlich verhindern das es zu viele gemeinsame Zugriffe bei mehreren Sensoren gibt.
Runtergeladen werden kann die neue Version hier (https://github.com/LeonGaultier/fhem-XiaomiFlowerMonitor/archive/devel.zip).
Bitte mal testen
@CoolTux: Tolle Arbeit! Habe mal 2 bestellt und bin schon gespannt. Allerdings ist's ja aktuell nix mit "Balkonpflanzen" ;-) Aber ich werde trotzdem mal spielen bzw. hatte ich einen schon mal probeweise noch mit dem Script gleich zu Beginn des Threads ausprobiert... Lief gut. Reichweite naja.
@roedert: werde ich mal ausprobieren (wenn ich wieder Zeit hab) schon mal vielen Dank!!!
Wegen der geringen Reichweite, also vom Balkon zu meiner fhem-Zentrale wird es wohl nicht zuverlässig laufen, werde ich es entweder wie roedert machen, also per Script einen Dummy befüllen und das von einem PI in Balkonnähe...
...oder dort halt fhem installieren, das Modul einrichen und dann per fhem2fhem...
Mal sehen...
Eventuell probiere ich auch mal einen ESP mit BT-LE Modul inwieweit ich da was "reissen" kann...
...würde dann den ESP in Balkonnähe platzieren und einen Dummy befüllen...
(Ein PI ist mir dafür eigentlich zu schade)
Aber wird wohl bis Weihnachten warten müssen...
Gruß, Joachim
Zitat von: MadMax-FHEM am 16 November 2016, 18:51:52...werde ich es entweder wie roedert machen, also per Script einen Dummy befüllen und das von einem PI in Balkonnähe...
Nicht ganz! Das Script läuft auf dem FHEM-Rechner und greift lediglich per ssh auf die "Remote-Pi's" zu und führt dort das gatttool aus. Die komplette Auswertelogik läuft also auf dem FHEM-Rechner, auf dem Remote muss nur das gatttool installiert sein.
Das von euch geschriebene Modul ist natürlich auch klasse, jedoch fehlt mir dort genau diese Funktionalität. Oder falls generelles Interesse besteht, kann man das Modul ja auch erweitern ... statt "gatttool...." muss dafür dann eben "ssh user@host gatttool...." ausgeführt werden.
Hi,
so genau hab ich mir das Script noch nicht angeschaut.
Sollte sich aber doch (leicht) ändern lassen (Copyright-Erlaubnis vorausgesetzt ;-) ), sodass ich das lokal auf einem PI laufen lasse (welcher in Balkonnähe ist), die gattool-Aufrufe dann dort lokal mache und per HTTP-Request die setreadings beim Dummy meiner fhem-Zentrale mache...
Oder ich nehm einfach das Script wie es ist ;-)
Gruß, Joachim
Klar kann das auch auf dem Remote laufen. Da ich aber mehrere Remotes habe, war mir ein einzelnes Script welches "zentral" läuft einfacher zu warten.
Ist ja auch noch in Entwicklung .... und zum Copyright, hab mir auch gerade aus dem Modul-Quelltest das Auslesen von Batterylevel und Firmware "geklaut" und mein Script entsprechend erweitert ;)
Räuber, Diebe, Politiker. ;D
Mist, aufgeflogen... ;-)
Hmmm, mal sehen...
Aber ich denke ich komme mit einem abgesetzten PI (oder lieber ESP) aus...
Zitat von: CoolTux am 16 November 2016, 12:24:20
Ich habe gerade eine neue Develversion hoch geladen.
Neu ist das ich dem Interval einen addierten Zufallswert mitgebe von max 300s
Das sollte hoffentlich verhindern das es zu viele gemeinsame Zugriffe bei mehreren Sensoren gibt.
Runtergeladen werden kann die neue Version hier (https://github.com/LeonGaultier/fhem-XiaomiFlowerMonitor/archive/devel.zip).
Bitte mal testen
Hallo Leon.
Die Version 0.1.59 läuft im Test seit heute morgen mit fünf Sensoren und einem intervall von 600 stabil mit nur zwei Aussetzern.
Muss jetzt auf Arbeit...von dem her stelle ich den Interval jetzt wieder hoch sonst sind morgen früh die Batterien leer 8)
Loge aber weiter mit und berichte dann.
Cheers
Die Batterie wundert mich sowieso. Bei mir wird trotz intensiver Nutzung und Tests immernoch 100% angezeigt.
Nun sollte sie natürlich noch nicht leer sein, aber 99% hielte ich schon für realistisch.
Das wird wohl eher voll, halb leer, fast leer von den Prozenten her sein.
Gesendet von iPad mit Tapatalk
Ich hatte schon mal kurz 99%, ging ne Stunde später wieder auf 100.
Ein anderer Sensor zeigte anfangs 67, mittlerweile seit Tagen 66% an
Bei mir läd´ fhem leider da Modul nicht
2016.11.17 14:27:22 1: reload: Error:Modul 74_XiaomiFlowerSens deactivated:
syntax error at /opt/fhem/FHEM/74_XiaomiFlowerSens.pm line 324, near "; ="
2016.11.17 14:27:22 0: syntax error at /opt/fhem/FHEM/74_XiaomiFlowerSens.pm line 324, near "; ="
Welche Modulversion hast Du?
@All
Für das Modul gibt es nun einen eigenen Thread. Fragen und Anregungen zum Modul bitte in dem neuen Thread posten.
https://forum.fhem.de/index.php/topic,60914.msg523175.html#msg523175
Hi,
ich habe mittlerweile auch 2 dieser Sensoren geliefert bekommen, die mit der iOS app auch funktionieren. Ich wollte nun auf meiner neuen FHEM-Instanz (rpi3 jessie light) mal die Grundlagen ausprobieren: "hcitool lescan" findet die MAC-Adresse vom Sensor. gattool connect liefert aber "Attempting to connect to C4:7C...
Error: connect error: Connection refused (111)"
gatttool -b C4:7C... --char-read --handle=0x35 liefert
Characteristic value/descriptor: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Keine Ahnung, ob das gut oder schlecht ist. Ich denke mal eher schlecht, weil da doch eigentlich was anderes ausgegeben werden sollte als nur 00...
Die tipps im Thread mal zu prüfen ob btle aktiv ist mit "btmgmt le on" klappen unter jessie nicht, weil btmgmt nicht installiert ist.
bluez mit apt-get zu installieren bringt auch nix, weil schon die aktuellste Version.
Egal, wie auch immer: Hat irgendjemand eine Idee, was genau ich tun muss damit wenigsten die "Basics" mit BTLE Devices unter jessie aufm rpi3 funktionieren?
Viele Grüße vom gent
Das mit den Nullen ist ok, du musst erst auf die 33 ein write machen da du die neue Firmware drauf hast.
Hallo CoolTux,
danke, das hat funktioniert (im Terminal auf dem fhem rpi3 als user pi)
gatttool --device=C4:7C:8D:61:BB:5C --char-write-req -a 0x33 --value=A01F
Characteristic value was written successfully
gatttool --device=C4:7C:8D:61:BB:5C --char-read --handle=0x35
Characteristic value/descriptor: cb 00 00 93 00 00 00 1a 58 03 02 3c 00 fb 34 9b
Das 74_XiaomiFlowerSens.pm von Dir noch in /opt/fhem/FHEM hochladen
Dann in fhem noch
define Blume1 XiaomiFlowerSens C4:7C:8D:61:BB:5C
und dann in fhem
list Blume1
Internals:
BTMAC C4:7C:8D:61:BB:5C
DEF C4:7C:8D:61:BB:5C
INTERVAL 3600
NAME Blume1
NR 91
STATE active
TYPE XiaomiFlowerSens
VERSION 0.1.59
Readings:
2016-11-18 19:31:39 battery 100
2016-11-18 19:31:39 fertility 806
2016-11-18 19:31:39 firmware 2.6.6
2016-11-18 19:31:39 lux 78
2016-11-18 19:31:39 moisture 25
2016-11-18 19:31:39 state active
2016-11-18 19:31:39 temperature 20.3
Helper:
Attributes:
room Wohnzimmer
Vielleicht dient das dem einen oder anderen auch als Test
Besten Dank für das Modul!
Viele Grüße vom gent
Tach.
Nur zur Info.
Ich hatte einen Sensor versuchsweise draussen platziert.
Angezreigte Temperatur: 6550.6 °C
bedeutet: -4°C
Werde den Versuch dann Abbrechen bis zum Frühjahr 8)
Cheers
mi.ke
Zitat von: mi.ke am 29 November 2016, 08:38:05
Tach.
Nur zur Info.
Ich hatte einen Sensor versuchsweise draussen platziert.
Angezreigte Temperatur: 6550.6 °C
bedeutet: -4°C
Werde den Versuch dann Abbrechen bis zum Frühjahr 8)
Cheers
mi.ke
Hast Du einen extra heißen Winteraufguss gemacht oder was ist da passiert?
Ich denke mal für minus Gerade ist das Teil entweder nicht ausgelegt oder muß anders ausgelesen werden.
Negative Werte werden auch bei vielen Funksensoren anders behandelt. Also eigentlich nichts Neues. Meisten wird ein Bit auf 1 gesetzt und dann muss entsprechend subtrahiert werden.
Grüße Jörg
Gesendet von iPad mit Tapatalk
Dann wäre interessant zu erfahren wie die Rohdaten aussehen. Kann das mal einer testen und auslesen.
Zitat von: CoolTux am 29 November 2016, 10:35:11
Dann wäre interessant zu erfahren wie die Rohdaten aussehen. Kann das mal einer testen und auslesen.
Hallo Leon.
mit
gatttool -b MAC --char-read -a 0x35
kommt Ergebnis
ea ff 00 20 00 00 00 11 e1 00 00 00 00 00 00 00
VERSION0.1.59
battery 100
fertility 224
firmware 2.6.2
lux 52
moisture 17 state active
temperature 6551.8
Ist es das , was Du brauchst.
PS.
komme grad nur mit dem Tablet dran, daher die komische Formatierung
Guten Morgen,
Vielen Dank. Das schaue ich mir an. Kann mir einer zum Vergleich noch Rohdaten eines Sensors mit positiver Umgebungstemperatur geben?
@ CoolTux:
Wenn dir schon jemand ein Nuki leiht, kann ich dir auch einen Sensor zum Testen und entwickeln schicken ;)
Zitat von: oli82 am 30 November 2016, 08:09:57
@ CoolTux:
Wenn dir schon jemand ein Nuki leiht, kann ich dir auch einen Sensor zum Testen und entwickeln schicken ;)
Hallo Oli,
Das ist super lieb von Dir. Aber glaube mir das ist nicht nötig. Alles was ich brauche sind die Rohdaten. Der Rest sollte nicht das Problem sein. Das Nuki Thema ist da bei weitem Komplexer.
Sollte es aber mal große Probleme geben, komme ich sehr gerne auf Dein Angebot zurück ;)
Immer gerne. Profitiere ja selbst davon ;)
Hallo,
negative Werte: e2 ff wird zu ffe2 wird zu 65506
positive Werte : a2 00
Sieht also so aus, als wenn durch den Wechsel von 00 -> FF negative Werte signalisiert werden.
Somit ergeben sich "plausible Werte" mit Ergebnis FFE2 - FFFF ergibt -26 durch 10 wäre dann -2,6 Grad
Da wir jetzt schöne minus Grade haben, habe ich das bei mir mal so umgesetzt und die Werte passen zu dem daneben liegenden Thermometer.
Grüße Jörg
So habe das mal eingebaut. Kann das bitte mal jemand testen. Sowohl mit plus als auch mit minus Graden bitte
Gibt es eigentlich schon Erfahrungswerte, wie man mit den Messwerten umgehen kann?
Hab mal meine Pflänzchen gedüngt und ein Sensor (Trachy) in die Auffangschalte gelegt.
Wie hoch kann der der Wert fertility steigen und was sagt das aus?
Die Temperatursensoren sind schon mal reine Schätzeisen bei mir und locker 2 -3 Grad niedriger als mein Thermostat. Da muss ich vielleicht noch Korrekturwerte hinterlegen.
Wäre dafür ein eigener Thread sinnvoll?
2016-12-02_14:05:43 FM_Olivenbaum battery: 87
2016-12-02_14:05:43 FM_Olivenbaum temperature: 20.8
2016-12-02_14:05:43 FM_Olivenbaum lux: 214
2016-12-02_14:05:43 FM_Olivenbaum moisture: 100
2016-12-02_14:05:43 FM_Olivenbaum fertility: 2630
2016-12-02_14:05:43 FM_Olivenbaum firmware: 2.6.2
2016-12-02_14:05:43 FM_Olivenbaum active
2016-12-02_14:07:53 FM_Trachy battery: 100
2016-12-02_14:07:53 FM_Trachy temperature: 18.2
2016-12-02_14:07:53 FM_Trachy lux: 572
2016-12-02_14:07:53 FM_Trachy moisture: 100
2016-12-02_14:07:53 FM_Trachy fertility: 5522
2016-12-02_14:07:53 FM_Trachy firmware: 2.6.2
2016-12-02_14:07:53 FM_Trachy active
Es wurde schon mehrfach gesagt, dass lepresenced und dieses Modul nicht nebeneinander her laufen können. Es soll wohl irgendwann etwas geben, um dieses Problem zu umgehen. Bis es soweit ist, gibts aktuell nur die Lösung mit zwei BT Dongle zu arbeiten.
Was ich daran nicht so recht verstehe ist, dass es doch vermutlich kein Problem ist den daemon zu erkennen und dann für die Abfrage des Sensors kurz zu stoppen und danach neu zu starten. Den Pflanzensensor fragt man ohnehin nicht allzu oft ab, da sonst die Batterie schnell am Ende ist. Da der daemon eventuell mit bestimmten Parametern gestartet wurde bzw. um das Ganze allgemeiner zu halten, könnte man vielleicht auch einfach 2 Attribute im Sensor hinterlegen wie z.B. runBeforeSensorRead und runAfterSensorRead. Hier kann man dann seine Start/Stop Kommandos für den daemon eintragen und dann sollte es auch ohne zweiten BT Dongle gehen.
Am elegantesten würde es natürlich funktionieren, wenn man den lepresence daemon um ein Stop/Resume erweitern würde...
Zitat von: mumpitzstuff am 22 Januar 2017, 13:44:38
Es wurde schon mehrfach gesagt, dass lepresenced und dieses Modul nicht nebeneinander her laufen können. Es soll wohl irgendwann etwas geben, um dieses Problem zu umgehen. Bis es soweit ist, gibts aktuell nur die Lösung mit zwei BT Dongle zu arbeiten.
Was ich daran nicht so recht verstehe ist, dass es doch vermutlich kein Problem ist den daemon zu erkennen und dann für die Abfrage des Sensors kurz zu stoppen und danach neu zu starten. Den Pflanzensensor fragt man ohnehin nicht allzu oft ab, da sonst die Batterie schnell am Ende ist. Da der daemon eventuell mit bestimmten Parametern gestartet wurde bzw. um das Ganze allgemeiner zu halten, könnte man vielleicht auch einfach 2 Attribute im Sensor hinterlegen wie z.B. runBeforeSensorRead und runAfterSensorRead. Hier kann man dann seine Start/Stop Kommandos für den daemon eintragen und dann sollte es auch ohne zweiten BT Dongle gehen.
Am elegantesten würde es natürlich funktionieren, wenn man den lepresence daemon um ein Stop/Resume erweitern würde...
Das ist alles möglich und meines Wissens gibt es eine solche Vorrichtung bereits in lepresenced. Allerdings wollte ich nicht mehr Energie in das ganze stecken wie nötig, da es ja bald ein entsprechendes Framework geben wird.
Aber ich bin offen für konkrete Patches. Bin eh gerade am überarbeiten.
Zitat von: CoolTux am 22 Januar 2017, 14:25:21da es ja bald ein entsprechendes Framework geben wird.
Gibts dazu nähere Infos bzw. kann man dazu etwas nach/mitlesen?
Zitat von: Pyromane am 22 Januar 2017, 14:50:42
Gibts dazu nähere Infos bzw. kann man dazu etwas nach/mitlesen?
Nein zum jetzigen Zeitpunkt noch nicht. Es befindet sich noch underdeveloped.
Ich habe mir mal die aktuelle Version geschnappt und einfach mal mit einem Editor einige Dinge hinzugefügt. So in etwa könnte es aussehen. Ich habs aber nur runter geschrieben und weder getestet, noch Fehler korrigiert. Soll nur mal ein grober Entwurf sein.
Eventuell sind mir auch noch 1-2 Ungereimtheiten aufgefallen. Schau am besten mal rein...
Schaue ich mir gerne an.
Würde Dich aber bitten bei weiteren Fragen oder Anregungen hier (https://forum.fhem.de/index.php/topic,60914.0.html) zu posten
Grüße
Leon
Ich habe Dir mal hier (https://forum.fhem.de/index.php/topic,60914.msg567335.html#msg567335) geantwortet.
Grüße
Hallo!
Hat von euch schon jemand den Sensor einmal längere Zeit mit oder ohne Modifikationen im Garten betrieben? Hält er das aus?
Grüße
Phil
Meiner wurde vor 2 Wochen einfach in die Erde unter der Hecke gesteckt. Bislang trotzt er Regen, Wind und Schnee - ganz modifikationslos.
Ob das aber auf Dauer so bleibt wage ich zu bezweifeln. Dafür ist die Konstruktion schlichtweg nicht gemacht.
Ich habe mich aber dennoch entschlossen einen Sensor testweise zu "opfern". Vielleicht straft mich meine Einschätzung ja Lügen...
Zitat von: Stril am 19 April 2017, 11:39:18
Hat von euch schon jemand den Sensor einmal längere Zeit mit oder ohne Modifikationen im Garten betrieben? Hält er das aus?
Zitat von: mi.ke am 26 März 2017, 14:05:21
Tach.
Ich hab seit einem halben Jahr einen direkt im Beet (volle Umwelteinflüsse), einen etwas geschützt im Blumenkübel und einen direkt an die Hauswand genagelt (in die pralle Sonne)
Nach einem halbel Jahr incl. Schnee und reichlich Minusgraden, sowie jetzt in der direkten Sonneneinstahlung :
Bisher keine Ausfälle, Batterie bei 82%.
...und laufen immer noch
Hallo!
Super! Vielen Dank!
Dann bestelle ich jetzt mal einen davon.
Grüße
Hi.
Hat schon jemand ein bißchen längere Erfahrung mit den Sensoren?
Ich habe drei Stück davon. Einer - der erste, den ich zum "Vorkosten" bestellt hatte - macht Probleme: Dieser saugt die Batterie innerhalb 2 Wochen leer und ist auch selten erreichbar per FHEM.
Die Symptome deuten darauf hin, dass der Sensor von sich aus ständig versucht irgendwas zu senden.
Was habe ich gemacht:
Den Problem-Sensor hatte ich bereits per App gekoppelt und hab dort auch ein Firmware-Upgrade draufgebügelt (2.8.6)
Die anderen beiden Sensoren habe ich direkt in FHEM eingebunden, kamen niemals mit der App in berührung und sind auf dem Firmwarestand 2.7.0
Jemand eine Idee oder ähnliche Probleme?
Achja, hier die Definition. Die anderen beiden Pflanzen sehen genauso aus... also ist die Define wohl nicht relevant. Trotzdem:
define BhutJolokia1 XiaomiFlowerSens C4:7C:8D:61:xx:xx
attr BhutJolokia1 interval 1800
attr BhutJolokia1 room Pflanzen
attr BhutJolokia1 stateFormat Temp: temperature °C, Dünger: fertility µS/cm, Feuchtigkeit: moisture %, Licht: lux Lux, Batterie: batteryLevel %
define FileLog_BhutJolokia1 FileLog ./log/BhutJolokia1-%Y-%m.log BhutJolokia1:batteryLevel:.*|BhutJolokia1:fertility:.*|BhutJolokia1:lux:.*|BhutJolokia1:moisture:.*|BhutJolokia1:temperature:.*
Meine Firmware ist überall 2.9.2 und die Dinger laufen seit vielen Wochen. Ich könnte mir nur vorstellen, das irgendwas bei dir ständig Live Daten abruft und so die Batterie vom Sensor killt. Ist dein Bluetooth auf dem Handy ständig aktiv bzw. versucht vielleicht die App ständig Daten abzurufen? Vielleicht ist der Sensor auch innen feucht?
Ne, bis auf den Raspi ist nix mit dem Sensor verbunden. Seltsam :-/
Wie hast du die 2.9.2 drauf bekommen? Ich habe die nicht-internationalen Versionen. Ist ein Krampf, die App überhaupt dazu zu bewegen, mit den Dingern zu reden...
Die App heißt Flower Care. Mit der verbindet man sich einfach und dann aktualisiert das Ding die Firmware.
Jupp, und genau diese App verbindet sich nicht (genau wie die Originale).
Device gefunden... Connection failed...
Wie gesagt... ist echt ein Krampf :o
Würde bzgl. der Batterie-Dauer hier ein attr DEVICE event-on-change-reading .* Sinn machen?
Nein. Der Intervall gibt vor wie oft der Sensor kontaktiert wird.
Hallo!
Hab gerade den Sensor in Betrieb genommen. Da ich Bluetooth-Sticks mit guter Reichweite verwende (mit Stabantenne), komme ich gut durch den Garten. Mein Raspberry Pi steht in der Küche - der Sensor ist ca. 20m weg durch die Wand - Empfang scheint stabil.
Bisher bin ich begeistert!!!
Grüße
Phil
Die originale App würde ich vom Handy schmeissen. Die hat bei mir die Sensoren komplett abstürzen lassen, so dass ich die Batterien entfernen musste. Hab eben auf 2.9.4 geupdated ohne Probleme. Schwierig war lediglich die initial zu finden mit der App. Wenn sie erst mal drin sind gehts eigentlich.
Zitat von: Stril am 27 April 2017, 22:31:47
Hallo!
Hab gerade den Sensor in Betrieb genommen. Da ich Bluetooth-Sticks mit guter Reichweite verwende (mit Stabantenne), komme ich gut durch den Garten. Mein Raspberry Pi steht in der Küche - der Sensor ist ca. 20m weg durch die Wand - Empfang scheint stabil.
Bisher bin ich begeistert!!!
Grüße
Phil
Kannst du mal bitte einen Link von dem Stick Posten? Ich hab immer wieder Probleme mit der Reichweite...
Hallo!
Ich habe einen Sena UD100 USB Stick. Der funktioniert wirklich gut.
Wie habt ihr denn das Firmware-Upgrade gemacht? Ich finde in der Flower Care App gar keine Option dafür...
Danke und Grüße
Phil
1x auf die Pflanze klicken, dann kommt die Gesamtübersicht. Jetzt nix machen und warten. Nach ein paar Sekunden fängt das Synchronisieren an. Erst wenn das abgeschlossen ist, wird das Update angeboten.
Also, die MiHome App added die Sticks problemlos. Leider werden hier keine Updates für den Stick angeboten. Die Flower Care- App (DAS ist übrigens die originale App des Stick-Herstellers) meint, ich wäre nicht im richten Land. Da hat der Händler mir nicht die internationale Version geschickt.
Nunja, ein GPS Fake hat nichts genützt. Wahrscheinlich wird zusätzlich zum aktivierten GPS (was soll das eigentlich?) auch noch die IP abgefragt. Subba. Muss ich mich mal nach nem chinesischen VPN umschauen plus GPS-Fake, um meine Pflanzen-Sticks zu aktualisieren. Man hat ja sonst nix zu tun :o >:(
Bevor ich so einen Amok veranstalten würde:
was ist denn mit der neuen (bzw. anderen) FWs anders/besser?
Steht das irgendwo zu lesen? Wo?
Gruß, Joachim
Der korrekte Thread wäre ja eigentlich hier (https://forum.fhem.de/index.php/topic,60914.0.html)
Zitat von: retikulum am 28 April 2017, 10:52:49
Also, die MiHome App added die Sticks problemlos. Leider werden hier keine Updates für den Stick angeboten. Die Flower Care- App (DAS ist übrigens die originale App des Stick-Herstellers) meint, ich wäre nicht im richten Land. Da hat der Händler mir nicht die internationale Version geschickt.
Nutze die FlowerCare App oder deinstalliere die MiHome App und installiere sie erneut. Diesmal aber "China Mainland" als Standort wählen ;).
Ich hatte das Problem nach dem vorletzten Firmware Update. Hab dann über den Android Anwendungsmanager Cache und Daten der Flower Care App gelöscht und alles war gut.
Cache löschen wäre ne Idee. Probiere ich heute mal. Danke.
@oli82:
What? Hast du meine zwei Sätze auch gelesen oder nur überflogen? :-o
MiHome App FUNZT... was bedeutet, dass ich "China" schon genutzt haben MUSS. FlowerCare App funzt NICHT. Da kann man übrigens keinen Standort wählen, da (meine Vermutung) die IP gecheckt wird...zusätzlich zum GPS.
@MadMax-FHEM:
Da ich Probleme mit dem BT-Stick habe (kaum erreichbar, nach 3-4 Wochen Batterie leer), ist ein Firmware-Upgrade natürlich eine Möglichkeit, das Problem zu lösen. Schon allein, weil dann (hoffentlich) irgendwelche Settings zurückgesetzt werden, etc.
@CoolTux:
Ok, ich mach dann in dem andern Thread weiter :-)
So, noch kurz zur Aufklärung: Diesen einen Stick habe ich irgendwie mit der "Flower Care" App binden können und ein Update aufgespielt. DAS wiederum hat tatsächlich das Batterie-Problem gelöst. Ich lasse jetzt alles so, keine Updates mehr :-D
Hallo,
ich hätte noch einen nagelneuen Flower Care Sensor (HHCC China-Version) für 10,00€ abzugeben. : ;)
Bitte beachten !!!
Dieser kann per Programmierung in fhem eingebunden werden, jedoch habe ich die Sticks über die App nicht zum Laufen gebracht.
Hättest Du Lust Ihn zu spenden? Versand würde ich natürlich gerne bezahlen.
Ich hätte dann 2 und könnte das Modul optimieren was multi Sensors angeht.
Grüße
Hi CoolTux,
ich hätte noch einen Sensor übrig. Wo soll ich den hinschicken?
vg stoxx
Echt jetzt. Das wäre der Hammer. Bekommst gleich PN.
Schon mal super vielen lieben Dank.
Ist unterwegs.. Damit: Danke für das super Modul!
vg stoxx
Zitat von: stoxx am 06 Juni 2017, 18:02:33
Ist unterwegs.. Damit: Danke für das super Modul!
vg stoxx
Ist heute angekommen und ich bedanke mich ganz doll bei Dir für Deine Spende.Grüße
Habt ihr die Sensoren eigentlich am Anfang irgendwie kalibriert?
Kann man eigentlich nicht. Ich habe aber für alle Sensoren Plots erstellt, die Dinger einige Tage laufen lassen und dann die Grenzen für meine Giesswarnungen gesetzt. Meine Gartenkräuter wuchern jetzt wie Unkraut... ;D
So kann ich dann auch Hydrokulturen überwachen. Die stehen fest auf irgend einem Level z.b. 25% und fallen dann erst nach sehr langer Zeit um 3-4%, wenn das Wasserreservoir aufgebraucht ist.
Habe ich es richtig mitbekommen, dass das Ding nicht mehr wirklich gebaut wird und deswegen teurer wird? Hatte irgendwo was gelesen, kann es aber nicht mehr finden.
Ich überlege aktuell auch mir welche zuzulegen, auf was genau muss man im Moment beim Kauf achten? Es gibt wohl eine internationale und eine China Version, wenn ich es richtig verstanden habe.
Man kann die China Version auch nehmen man muss dann nur beim fw Update über die xiaomi App zb mit flyvpn eine chinesische IP verwenden
Ich habe sie (auch wegen dem Update) erst mal mit der App gekoppelt. Ob da eine Kalibrierung stattgefunden hat kann ich aber nicht sagen.
der moisture wert bewegt sich irgendwie bei mir quasi gar nicht:
in der luft: 0
in trockener erde indoor: 15
in feuchter erde outdoor: 17
in superfeuchter erde nach gewitter: 18
(ja es kommen updates und die temperatur und lux sind plausibel
Ich habe jetzt ein wenig getestet und wenn ich sie ins Trockene lege komme ich auf 0, wenn ich sie allerdings in einen Becher mit Wasser gebe komme ich auf 89-93 %.
Hallo ,
ich habe ein kleines problem und hoffe hier kann jemand helfen.
ich frage die daten des flowersensors nur dreimal täglich ab. funktioniert auch ganz gut ( meistens .... leider nicht immer ). ab und an ist der sensor wohl nicht erreichbar und ich bekomme im state die meldung "unreachable". da meine blumenbewässerung daran hängt ( und somit mein wohlbefinden ... WAF ) möchte ich ungerne den bewässerungszeitpunkt verpassen , da der sensor mal nicht erreichbar war.
das problem wollte ich lösen, indem ich ein notify auf unreachable trigger und die werte in diesem fall über eine routine 2 oder 3 mal versuche neu abzurufen durch ein "set <Sensor> statuRequest". sollte er nach dreimaligem versuch noch immer keine daten empfangen schicke ich eine telegram-nachricht auf das handy.
so der plan ...... in der praxis leider anders.
beim aüslösen des notifys verliert die weboberfläche die verbindung bzw. fhem verabschiedet sich komplett und ist nur durch einen neustart - konsole- zu reanimieren.
im log habe ich dann folgende fehlermeldungen :
2017.07.11 11:44:53 1: Timeout for XiaomiFlowerSens_BlockingRun reached, terminated process 24123
Can't kill a non-numeric process ID at FHEM/Blocking.pm line 267.
2017.07.11 11:44:56 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.07.11 11:44:56 1: BlockingInformParent (XiaomiFlowerSens_BlockingDone): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.07.11 11:44:57 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.07.11 11:44:57 1: BlockingInformParent (PRESENCE_ProcessLocalScan): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
...... und das war es.
kann mir hier ggf. jemand sagen warumdieses problem entsteht bzw. wie ich es vermeiden kann ?
gruss Byte09
Bitte einmal ein list vom XiaomiFlowerSens Device sowie ein list des Notifys
list ist ein FHEM Befehl
Zitat von: CoolTux am 11 Juli 2017, 12:24:28
Bitte einmal ein list vom XiaomiFlowerSens Device sowie ein list des Notifys
list ist ein FHEM Befehl
Hi CoolTux,
danke vorab.
list Sensor:
Internals:
BTMAC C4:7C:8D:64:3D:74
DEF C4:7C:8D:64:3D:74
INTERVAL 28800
NAME Aussenpflanze
NR 853
STATE active
TYPE XiaomiFlowerSens
VERSION 1.0.1
READINGS:
2017-07-11 12:30:41 battery ok
2017-07-11 12:30:41 batteryLevel 100
2017-07-11 12:30:41 fertility 0
2017-07-11 12:30:41 firmware 3.1.4
2017-07-11 12:29:39 lastGattError Unknown Error, look at verbose 5 output
2017-07-11 12:30:41 lux 1394
2017-07-11 12:30:41 moisture 1
2017-07-11 12:30:41 state active
2017-07-11 12:30:41 temperature 22.2
helper:
Attributes:
event-on-change-reading state
event-on-update-reading .*
hciDevice hci0
interval 28800
minMoisture 34
room 0.06_Sensoren
list notify:
Internals:
CFGFN
DEF Aussenpflanze:unreachable set Aussenpflanze statusRequest
NAME Aussenpflanze_notify_2
NOTIFYDEV Aussenpflanze
NR 956
NTFY_ORDER 50-Aussenpflanze_notify_2
REGEXP Aussenpflanze:unreachable
STATE inactive
TYPE notify
READINGS:
2017-07-11 12:37:24 state inactive
Attributes:
room 0.06_Sensoren
eigentlich rufe ich mit dem notify eine routine auf die 3mal versucht den request auszulösen und dann das telegram schickt. habe ich hier aber geändert zur fehlersuche. das notify alleine , so wie im list, löst bereits den fehler aus.
gruss Byte09
PS:
den "2017-07-11 12:29:39 lastGattError Unknown Error, look at verbose 5 output" schleppe ich noch aus dem versuch mit, das teil unter wheezy zum laufen zu bringen ... keine chance gehabt ohne update auf jessy. habe ihn erst eben gelöscht und er taucht auch nicht wieder af.
gruss byte09
Ok ich kann das Problem in der Tat nachvollziehen. Weiß aber noch nicht wieso das so ist. Das wird etwas dauern.
BTW: Wenn Du Code oder log im Forum schreibst dann bitte immer in Codetags. Das ist in der Symbolleiste das Routezeichen ;)
Grüße
Zitat von: CoolTux am 11 Juli 2017, 13:19:08
Ok ich kann das Problem in der Tat nachvollziehen. Weiß aber noch nicht wieso das so ist. Das wird etwas dauern.
BTW: Wenn Du Code oder log im Forum schreibst dann bitte immer in Codetags. Das ist in der Symbolleiste das Routezeichen ;)
Grüße
sorry, vergessen da er relativ kurz war. ich denke daran :)
dank dir
gruss Byte09
ich habe das problem jetzt erstmal umgangen , indem ich den statusrequest 10 sekunden verzögert nach dem trigger ausführer. damit taucht das problem nicht auf.
gruss Byte09
Die Beobachtung konnte ich auch machen. In meiner Testumgebung gibt es im übrigen keine Probleme. Da kann ich das Teil im Sekundentakt triggern lassen. Eine Fehlermeldung im Livesystem bei mir zeigte aber auch das noch andere BlockingCall Aufrufe mit mischen. Eventuell ist hier das genaue Fehlerbild zu suchen.
Zitat von: yrwyddfa am 22 Juni 2017, 15:30:17
Ich habe sie (auch wegen dem Update) erst mal mit der App gekoppelt. Ob da eine Kalibrierung stattgefunden hat kann ich aber nicht sagen.
Hab gerade ein Update durchgeführt und im Changelog in der App stand zum einen eine Batterieoptimierung. Jetzt wird statt 100 % nurnoch 99 % angezeigt. Außerdem seh ich einen deutlichen Knick in meinem Feuchtigkeitsplot woraus ich schließe, dass auch hier eine Änderung durchgeführt wurde. Von V2.7.0 zu V3.1.4
Grüße
Fabian
Zitat von: Byte09 am 13 Juli 2017, 07:43:01
ich habe das problem jetzt erstmal umgangen , indem ich den statusrequest 10 sekunden verzögert nach dem trigger ausführer. damit taucht das problem nicht auf.
gruss Byte09
Das Problem konnte nachgestellt, lokalisiert und hoffentlich gefixt werden.
https://forum.fhem.de/index.php/topic,74128.msg660531.html#msg660531
Zitat von: CoolTux am 17 Juli 2017, 11:27:37
Das Problem konnte nachgestellt, lokalisiert und hoffentlich gefixt werden.
https://forum.fhem.de/index.php/topic,74128.msg660531.html#msg660531
Hi Cooltax,
Ich werde das im Laufe des Tages probieren .
Danke an dich und an Rudolf
Gruss Byte09
Gesendet von meinem SM-G900F mit Tapatalk
Zitat von: Byte09 am 17 Juli 2017, 11:33:36
Hi Cooltax,
Ich werde das im Laufe des Tages probieren .
Danke an dich und an Rudolf
Gruss Byte09
Gesendet von meinem SM-G900F mit Tapatalk
Bitte daran denken das FHEM update erst morgen die gefixte Version bereit stellt. Es steht Dir natürlich frei Dir die Version aus dem SVN zu laden und ein zu spielen.
Grüße
es gibt ihn heut efür 8,59€ https://www.mydealz.de/deals/original-xiaomi-mi-flora-monitor-1030846#comment-14558424
es wird oft von china-only varianten geredet. besteht das problem mit der aktivierung auch wenn man nur fhem + bt nutzt?
Ich würde davon ausgehen das ding bekommt die batterie eingelegt und sendet ab da fröhlich
Zitat von: chris1284 am 03 August 2017, 14:49:39
es gibt ihn heut efür 8,59€ https://www.mydealz.de/deals/original-xiaomi-mi-flora-monitor-1030846#comment-14558424
es wird oft von china-only varianten geredet. besteht das problem mit der aktivierung auch wenn man nur fhem + bt nutzt?
Ich würde davon ausgehen das ding bekommt die batterie eingelegt und sendet ab da fröhlich
Das tut es. Keine Probleme
deal gibt es immer noch und habe mal 2 bestellt. mal schauen wo ich die einsetze kann. Einen grund findet man bestimmt :-)
Ich steuere mit 2 zusätzlich mein Licht. Die Pflanzen stehen am Wohnzimmerfenster. Immer wenn Twighlight sich aktuallisiert werden die beiden abgefragt und der Helligkeitswert wird gemittelt. Dadurch entscheidet dann eine Sub ob Licht angeschalten werden muß oder nicht.
Hallo,
kann jemand auch meine Beobachtung bestätigen, das die Qualität des BT Empfang der Xiaomi Flower Monitor davon abhängig ist, wie der Flower Monitor zum BT-Dongle steht? Also mit der Breit- (guter Empfang) oder der Quer-seite (schlechter Empfang) zum RasPi?
Ich habe 2 Xiaomi Flower Monitor im Wohnzimmer. Bisher hatte ich die immer mit der schmalen Seite zum Raspi im Schlafzimmer gedreht, weil ich die mit einem Edding numeriert hatte und dann die Zahl besser ablesen konnte. Ich habe einen schlechten Empfang gehat, also ein update der Werte nur sehr unregelmässig bekommen (ich habe den ReadingsTimestamp für Moisture mit angeschaut), und gedacht, dass es an der geringen BT Reichweite liegt.
Dann habe ich mal einen anderen neuen Xiaomi Flower Monitor genommen, weil ich wissen wollte ob der neue vielleicht eine bessere BT Reichweite hat. Diesen hatte ich dann einfach so in die Blume gesteckt, und festgestellt, das ich mit diesem regelmässig alle 15 Minuten mein Update bekomme.
Nach weiteren Versuchen bin ich dann drauf gekommen, das es an der Steckrichtung liegt (Breit oder Querseite zum Empfangs-Raspi) (Bei schlechtem Empfang einfach den Flower monitor mal um 90 Grad gedreht in dei Blume stecken ).
Kann das jemand bestätigen?
Nee, einer meiner Sensoren hat 8m Luftlinie zum Raspi mit zwei Rotklinker-Ziegelwänden dazwischen zu überbrücken und läuft.
Gruß
Uwe
Zitat von: inoma am 22 August 2017, 13:54:34
Kann das jemand bestätigen?
dito. durch 2 wände und ca 8 meter geht er nur wenn ich die breite seite richtung bt-dongle setze. ich habe firmware 3.1.8
@CoolTux: ahbe den wiki artikel angepasst da
a) eine neu Firmware da ist
b) die led immer an geht wenn daten abgerufen werden (kein bekanntes problem eigentlich)
c) mi home die dinger nicht erkennt unter ios 10. der qr-code der verpackungsbeilage brint einen dann zu der app flower care
Auch wenn ich c dann gar nicht mehr interpretieren könnte, Vielen Dank ;D
Hat vielleicht jemand eine Idee zu meinem Problem:
Ich hab 2 Flower Monitor, beide funktionieren problemlos mit FHEM. Einen hab ich erfolgreich in die Flower Care App eingebunden, FW update gemacht und es passt alles. Als ich das mit dem Zweiten versucht habe hat er ihn erkannt und auch angelegt aber dann sofort die Verbindung zum Handy verloren. Ein erneutes Verbinden mit verschiedenen Android Geräten funktioniert nicht. FHEM kann die Daten aber immernoch abrufen. Ich wollte eigentlich nur ein FW Update durchführen und so schlecht find ich die App auch nicht, dass man hin und wieder mal einen Blick reinwerfen kann.
Ich hab aber keine Ahnung, voran das lieen kann? Kennt ihr ähnliche Probleme?
Grüße
Fabian
schonmal kurz die batterie entfernt?
Hatte die Batterie schon einen halben Tag draußen, hat auch nichts gebracht. Auch wenn alle anderen BT Geräte in der Nähe aus sind lässt der Sensor keine Kopplung zu. Reset gibt es ja bei dem Gerät nicht, soweit ich weiß also bin ich glücklich, dass er die Daten weiter an FHEM liefert und bleib bei der "alten" Firmware. Große Änderungen sind da ja sowieso nicht zu erwarten.
Bisher schein ich ja ein Einzelfall zu sein, vielleicht gab es beim ersten Versuch den Sensor mit der App zu koppeln irgendein Problem.
Kennt jemand einen bt4 Stick mit Antenne? Ist deprimierend wenn ich am Handy alle finde über 3 Stockwerke und über den Stick nur die in direkter Sicht.
Ich hatte bei meinen Sensoren auch vereinzelt Abbrüche beim Einrichten mit der App.
Bei mir fand die App den Sensor im Anschluss nicht mehr. Es half jedoch das Beenden der App und Neustarten der selben.
Hi,
zur Info: Habe gestern zum ersten mal die Batterie eines Sensor wechseln müssen. Damit hat die Batterie meines ersten Pflanzen- Sensors über 14 Monate gehalten. Und das, obwohl dieser Sensor viele Tests und Pflanzenwechsel ertragen musste..
vg stoxx
Das ist doch super.
Ich bin aktuell dabei das Modul komplett neu zu schreiben. Wird noch etwas dauern.
Auf jeden Fall wird dann nur noch einmal am Tag Batteriestatus und Firmware ausgelesen, das spart zusätzliches lesen pro Vorgang. Es wird dann nur noch einmal geschrieben und einmal gelesen, statt zweimal lesen.
Grüße
Hat jemand schon mal eine vernünftige Batterieanzeige erhalten? Bei mir sind das irgendwie konstante Werte über 90%.
ZitatBei mir sind das irgendwie konstante Werte über 90%.
Wie lange hast Du Deine Sensoren denn schon im Einsatz?
Monate... Genau kann ich es nicht sagen. Aber die Werte sind absolut konstant. Der eine zeigt 100 und der andere 99% und das von Anfang an.
Mir ist aufgefallen, dass in der Doku noch das Attribut hciDevice fehlt.
Auch bin ich etwas verwirrt vom Attribut sshHost. Das kam bei mir gestern nach einem Update hinzu. Da ich nun auch Sensoren in einem Nachbarraum überwache eine sehr nützliches Attribut, um ein FHEM2FHEM Gerüst zu vermeiden.
Doch stelle ich mich gerade etwas blöd an, in der Umsetzung.
Die Sensoren sind in Reichweite meines Wohnzimmer-Pi. Dort sind OSMC (Raspbian mit Kodi) und FHEM installiert. Das gatttool habe ich ebenfalls nachträglich installiert (Version 5.43 verrichtet hier gute Dienste, neuere Versionen waren teils problematisch). Benutzer und Passwort heissen osmc. In FHEM sind die Sensoren nicht definiert.
Auf der FHEM-Zentrale läuft Raspbian Jessie und FHEM. Der Benutzer lautet pi. Die Sensoren sind unter FHEM definiert.
Nun wirds bei mir jedoch schwammig:
Auf der FHEM-Zentrale muss eine .ssh/config erstellt werden?
Host wohnzimmer
HostName 123.456.789.0
Port 980
User osmc
In der FHEM-Definition muss bei sshHost wohnzimmer stehen oder 123.456.789.0?
Fehlt sonst noch etwas, oder ist meine Überlegung soweit ok?
Danke
Auch vielen Dank fürs Modul. Endlich überleben meine Pflanzen.
Wenn Du eine config hast so wie Deine musst Du sshHost nur wohnzimmer setzen.
Was Du jetzt noch brauchst ist ein Schlüsselpaar. Denn es geht ja nur bei einem passwortlosen Zugang mit Zertifikat. Danach muss einmalig von Hand eine Verbindung aufgebaut werden um den ssh Schlüssel zu akzeptieren. Danach muss man nichts mehr bestätigen.
Hier mal wie sshHost funktionieren soll
https://mathias-kettner.de/lw_ssh_anmeldung_ohne_passwort.html
Hm, klappt nicht. :(
Ich habe die config auf der Zentrale angelegt (Port 22 und richtige IP-Adresse verwendet). Auch habe ich die von Dir verlinkte Anleitung befolgt. Das hat auch geklappt. Dennoch werden die Sensoren in FHEM als unreachable markiert. Ich verwende FHEM 5.8 und XiaomiFlowerSens 1.0.3.
Ich habe ausprobiert, statt Wohnzimmer die IP-Adresse beim Atttribut sshHost zu verwenden - gleiches Resultat.
Im Logfile bekomme ich folgenden Fehler:
ZitatPermission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
Die Rechte von .ssh sind auf der Zentrale 700 und auf dem Wohnzimmer 755 (was ja auch für 700 reichen sollte).
Hast du die Daten auch nach /opt/fhem/.ssh kopiert und Rechte angepasst?
Hatte ich nicht. Nachdem ich es nun getan habe, ändert sich jedoch weiter nichts. Ich habe die Rechte nun mit sudo chown -cR pi:pi /opt/fhem/.ssh geändert. Dann bekomme ich immerhin schon mal eine neue Fehlermeldung im Log:
ZitatHost key verification failed.
Macht es ggf Sinn, die Keys neu anzulegen und dann als Ablageverzeichnis gleich /opt/fhem/.ssh zu wählen?
Warum solltest du den Ordner .ssh nach /opt/fhem kopieren? Welcher User glaubst du führt den ssh Befehl aus? ;D
fhem ist vorher der Besitzer von /opt/fhem/.ssh gewesen. Das hat aber die gleiche Fehlermeldung hervorgerufen.
Die Zertifikate habe ich auch als pi angelegt - fhem hat bei mir eine Login-Erlaubnis.
Den Key falsch erstellt?
Mach doch mal als User root
su -c 'ssh host' -s /bin/bash fhem
Ok, also nochmal zum Verständnis:
Ich muss die Keys als Benutzer fhem erstellen, da dieser sich später auch über FHEM per ssh am zweiten Pi anmeldet um die Sensorwerte zu holen.
Also muss ich analog zu Deiner vorher verlinkten Anleitung mich auf Rechner A als Benutzer a (fhem) anmelden und die weiteren Schritte durchführen und die Keys in /opt/fhem/.ssh ablegen?
Dazu kann ich mich doch dann auch so zum fhem-Benutzer machen und fortfahren?
fhem eine Shell zuweisen:
sudo nano /etc/passwd
und /bin/false in /bin/bash ändern..
Dann anmelden mit :sudo su - fhem
Anschließend der Anleitung weiter folgen
Wenn ich gefragt werde, wo ich die Keys ablegen möchte, gebe ich dann /opt/fhem/.ssh ein?
Also wer die Keys erstellt ist völlig egal. Aber am einfachsten geht es natürlich als pi.
Bitte auf keinen Fall die Shell von fhem ändern. Das hebelt Sicherheitsfunktionen aus.
Ab besten du erstellst erstmal alles als pi und testest auch als pi. Wenn das funktioniert ohne Probleme kopierst du den Ordner .ssh von pi nach /opt/fhem und vergibst dem Ordner Rechte für fhem
Lese Dir mal den Thread weiter durch auf den ich verlinkt habe. Der User hat es am Ende auch geschafft.
Ich probiere es noch einmal. Danke.
Zuvor habe ich die Keys mit dem User pi erstellt. Nach ein paar Versuchen habe ich dann das Verzeichnis .ssh nach /opt/fhem.ssh kopiert und fhem:dialout die Rechte zugesprochen.
Das hatte aber keinen Erfolg.
Ich probiere es nun noch einmal von vorne aus.
statt fhem2fhem kannst du auch rfhem probieren falls die ssh geschichte nicht geht
Keine Ahnung, was beim ersten Versuch schief gegangen ist (abseits, dass ich zuerst falsche Rechte vergeben habe, das aber korrigiert habe).
Nachdem ich es nun noch einmal komplett gemacht habe und den Murks zuvor gelöscht habe) klappt es. Ich muss lediglich noch die .ssh/config Datei anlegen - hier verwende ich zzt. noch als Wert für das sshHost-Attribut <Benutzer>@<IP-Adresse>.
Danke für die Unterstützung.
Freut mich das es nun geht und ist auch alle mal besser wie FHEM2FHEM. Das wäre mit Kanonen auf Spatzen zu schießen.
Grüße
Hallo Leute,
ich habe mir auch zwei von den Sensoren besorgt.
Und sie scheinen zu funktionieren. Ich kann die Sensoren aus dem Schlafzimmer im Flur noch empfangen.
Allerdings musste ich vorher den raspi von whezzy auf jezzy bringen.
Bei den bluetooth dongle sollte ihr welche nehmen die Low Energie LE können.
Wie kann ich die Abfragen reduzieren, um batterie zu sparen ?
Gruß
Frank
Es gibt das Attribut Interval. Schau mal in die Commandref.
Ja danke,
funktioniert :D
Scheisse es geht !! :D 8) :-*
Ich habe meinen ungebrauchten raspi 1 als remote raspi eingesetzt
und nun holt das flower modul brav die daten da ab
SUPER ARBEIT von dir(euch), danke
Gruß
Frank
Tja zu früh gefreut. :(
Es ging eine zeitlang und jetzt kriege ich folgende Meldungen :
2017.10.11 10:39:56 4: Sub XiaomiFlowerSens_Run (pflanze2) - start blocking call
2017.10.11 10:39:56 4: Sub XiaomiFlowerSens_BlockingRun (pflanze2) - Running nonBlocking
2017.10.11 10:40:10 5: Sub XiaomiFlowerSens_callGatttool (pflanze2) - WFR: 1
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - write data to host pi@raspberrypi
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - call gatttool charWrite loop 1
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - charWrite wresp: Characteristic value was written successfully
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - run gatttool
2017.10.11 10:40:26 1: Timeout for XiaomiFlowerSens_BlockingRun reached, terminated process 3067
2017.10.11 10:40:26 3: (pflanze2) Sub XiaomiFlowerSens_BlockingAborted - The BlockingCall Process terminated unexpectedly. Timedout
Woran kann das liegen ??
Am remote raspi kommt scheinbar was an ?
Die Blockings habe ich manchmal auch drin - gerade wenn ich die Geräte öfters initialisiere. Es gibt ja zzt. ein Problem mit der blocking.pm. Vielleicht hat es damit zu tun, doch das weiß CoolTux genauer.
https://wiki.fhem.de/wiki/Blocking_Call
Das ist eine ganz normale Ausgabe. Wenn innerhalb der angegebenen Zeit die BlockingCall Fn nicht durch läuft wird der gesamte Prozess beendet und die BlockingAbort Fn ausgeführt. Genau die liefert die Ausgabe.
Irendwas hat da wohl gatttool blockiert. Hast Du das jetzt dauerhaft?
ja leider. meine beiden xiaomi seonsoren bleiben unreachable.
auf dem remote raspi kommt aber was an.
jedenfalls schmeisst hcidump jede menge raus
du hast hcidump gleichzeitig laufen? weiß nicht ob sich das verträgt. Mit lepresenced gibt es da ja auch Probleme.
Mach mal verbose 5 bei einer der Pflanzen und starte mal den statusRequest
ja das habe ich schon gemacht.
den output hatte ich oben schon gepostet.
hcidump habe ich nur mal testweise gestartet.
auch ohne hcidump habe ich die probleme
vielleicht habe ich einen (oder beide raspis) verdengelt
Ich würde vermuten das deine Stromversorgung unzureichend ist. Was hast du alles am raspi hängen und wie stark ist dein Netzteil?
Zitat
2017.10.11 10:39:56 4: Sub XiaomiFlowerSens_Run (pflanze2) - start blocking call
2017.10.11 10:39:56 4: Sub XiaomiFlowerSens_BlockingRun (pflanze2) - Running nonBlocking
2017.10.11 10:40:10 5: Sub XiaomiFlowerSens_callGatttool (pflanze2) - WFR: 1
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - write data to host pi@raspberrypi
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - call gatttool charWrite loop 1
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - charWrite wresp: Characteristic value was written successfully
2017.10.11 10:40:20 4: Sub XiaomiFlowerSens_callGatttool (pflanze2) - run gatttool
2017.10.11 10:40:26 1: Timeout for XiaomiFlowerSens_BlockingRun reached, terminated process 3067
2017.10.11 10:40:26 3: (pflanze2) Sub XiaomiFlowerSens_BlockingAborted - The BlockingCall Process terminated unexpectedly. Timedout
Da sind aber ganz schöne Zeitsprünge drin. Kein wunder das er irgendwann in ein Timeout läuft
Hm,
ich habe den raspi wo fhem läuft mittels update von whezzy auf jessie gebracht
ich habe den eindruck der läuft seit dem läuft er nicht mehr so "rund" ??
Aber das war schon gestern und da ging der remote zugriff ja noch
die netzteile sind original und haben 2A output
da muss ich wohl in den sauren apfel beissen und den raspi neu aufsetzen
gibt es eine doku wie man ein backup von fhem anlegt ?
Lass mich kurz für dich in die CommandRef schauen, da du diese nicht kennst, oder nicht nutzen willst: https://fhem.de/commandref_DE.html#backup
danke für den zaunpfahl
Zitat von: frank_41 am 11 Oktober 2017, 16:00:28
danke für den zaunpfahl
War ja schon ein halber Eifelturm ;D
Hi
ich hatte als attribut ein intervall von 3600 eingestellt unt seitdem liefert der sensor unregelmäßig bis kein update. daher habe ich das attribut gelöscht aber die situation bleibt gleich.
Mit get statusUpdate bekomme ich sofort neue werte. nun aber ich als krücke ein
define Update_Flower2 at +*00:05:00 { fhem("get pflanze2 statusRequest")}
eingebaut. Aber vorher brauchte ich das auch nicht.
Hat jemand eine Idee?
Hast Du ein event-On-Change o.ä. vergeben?
Bitte einmal heute ein Update machen. Mir ist beim umstellen auf NotifyFn etwas unter den Tisch gefallen was ich vorgestern gefixt habe.
update gemacht. muss ich ein event on change vergeben? ich dachte dann sind die plots eher abgestuft. (habe ich daher nicht gemacht)
Nein musst Du nicht. Die Sensor Reading werden nur aktualisiert wenn sich auch ein Wert ändert.
Seit einer der letzten Versionen hat sich ein kleiner Bug ...oder besser gesagt "Denkfehler" eingeschlichen.
Das Modul überprüft die Existenz von bluez (zb gattool) und bricht ab wenn dieses nicht vorhanden ist. Beim Einsatz von sshHost ist bluez auf dem FHEM-Rechner lokal allerdings gar nicht nötig.
$gatttool = qx(which gatttool) if($sshHost eq 'none');
$gatttool = qx(ssh $sshHost 'which gatttool') if($sshHost ne 'none');
Laut Code erfolgt die Prüfung entweder local oder auf dem Host. Je nachdem ob sshHost gesetzt ist. Hast Du eine andere Beobachtung gemacht?
Grüße
Zitat von: CoolTux am 29 November 2017, 19:32:52
Hast Du eine andere Beobachtung gemacht?
Ja, lokal hatte ich bluez nicht installiert, deswegen kamen nach dem Update die Fehler
2017.11.29 19:11:19 4: XiaomiFlowerSens (XiaomiPlant.35) - WriteReadings: Readings were written
2017.11.29 19:11:19 5: XiaomiFlowerSens (XiaomiPlant.35) - ProcessingErrors
2017.11.29 19:11:19 5: XiaomiFlowerSens (XiaomiPlant.35) - ExecGatttool_Done: JSON error while request: 'null' expected, at character offset 0 (before "no gatttool binary f...") at /opt/fhem/FHEM/74_XiaomiFlowerSens.pm line 486.
2017.11.29 19:11:19 4: XiaomiFlowerSens (XiaomiPlant.35) - ExecGatttool_Done: gatttool return string: XiaomiPlant.35|C4:7C:8D:61:AB:AB|error|read|0x38|no gatttool binary found. Please check if bluez-package is properly installed
2017.11.29 19:11:19 4: XiaomiFlowerSens (XiaomiPlant.35) - CallBatteryFirmware: call function ExecGatttool_Run
XiaomiPlant.35 ist aber definiert mit Attribut sshHost root@FHEMplant-05 ... auf FHEMplant-05 gibt es bluez natürlich.
Nachdem ich bluez (unnützerweise) auch lokal auf dem FHEM-host installiert habe, ist wieder alles ok.
Danke Dir, das schaue ich mir an.
Grüße
Zitat von: roedert am 29 November 2017, 20:52:20
Ja, lokal hatte ich bluez nicht installiert, deswegen kamen nach dem Update die Fehler
2017.11.29 19:11:19 4: XiaomiFlowerSens (XiaomiPlant.35) - WriteReadings: Readings were written
2017.11.29 19:11:19 5: XiaomiFlowerSens (XiaomiPlant.35) - ProcessingErrors
2017.11.29 19:11:19 5: XiaomiFlowerSens (XiaomiPlant.35) - ExecGatttool_Done: JSON error while request: 'null' expected, at character offset 0 (before "no gatttool binary f...") at /opt/fhem/FHEM/74_XiaomiFlowerSens.pm line 486.
2017.11.29 19:11:19 4: XiaomiFlowerSens (XiaomiPlant.35) - ExecGatttool_Done: gatttool return string: XiaomiPlant.35|C4:7C:8D:61:AB:AB|error|read|0x38|no gatttool binary found. Please check if bluez-package is properly installed
2017.11.29 19:11:19 4: XiaomiFlowerSens (XiaomiPlant.35) - CallBatteryFirmware: call function ExecGatttool_Run
XiaomiPlant.35 ist aber definiert mit Attribut sshHost root@FHEMplant-05 ... auf FHEMplant-05 gibt es bluez natürlich.
Nachdem ich bluez (unnützerweise) auch lokal auf dem FHEM-host installiert habe, ist wieder alles ok.
Gibt ab morgen früh 8 Uhr ein Update, kannst Du bitte mal schauen ob sich was bei dir geändert hat und wenn nicht dann brauche ich noch mal genau die Fehlermeldung so wie hier oben
Hm, ich kämpfe zzt. auch mal wieder mit meinen Sensoren.
Setup: Im Wohnzimmer ist ein Raspberry Pi 3 mit OSMC (nachfolgend Wohnzimmer). Bluez wurde nachträglich installiert. Von der FHEM-Zentrale rufe ich mittels SSH die Sensoren über Wohnzimmer ab.
Mir viel vor ein paar Tagen auf, dass alle Sensoren (4 Stück) nicht im Webfrontend erreichbar sind. Auf dem Wohnzimmer finde ich sie jedoch mittels "sudo hcitool lescan".
Zunächst (vor ein paar Wochen) lief noch alles. Vielleicht hat mir ein Update die Konfiguration zerschossen? Ich werde heute Abend mal das neue Update ausprobieren.
Was genau heißt "nicht erreichbar"? Fehlermeldungen beim Auslesen? Welche genau?
Hallo,
bei mir funken 2 identische Sensoren (firmware 3.1.8)
Soweit so gut. Nur die Werte von fertility unterscheiden sich doch sehr stark. Ich habe zum Vergleich beide Sensoren nebeneinander in einen Topf gesteckt.
Der eine Sensor hat Werte von um 20 -30 angezeigt und der andere 150-200. Kann ich die Sensoren irgendwie eichen oder resetten?
Gruss Thomas
Eichen geht nicht. Du kannst dir ein Userreading erstellen und dort einen angepassten Wert ablegen. Ansonsten versuch aber mal den Sensor mit den niedrigen Werten ein Stück daneben in den Boden zu stecken, Vielleicht ist an der einen Stelle ein Stein im Boden oder sowas.
Ich für meinen Teil habe es aufgegeben die Dünger Werte irgendwie einzubeziehen, das sind meiner Meinung nach reine Mondwerte. Daraus lässt sich nichts brauchbares ableiten.
Hey,
ich habe aktuell ein Problem mit meinem Flower Care Sensor, was scheinbar schlimmer wird.
Der Wert für die Feuchtigkeit "jittert". Ich hänge mal ein paar Bilder davon an.
Hier sieht man, dass es in den letzten Wochen anfangen hat und schlimmer wird:
https://ibb.co/QHfGWWh
https://ibb.co/swW7nZj
https://ibb.co/0qG77Mc
Und hier nochmal die Readings:
https://ibb.co/QDcRgVw
Geht die Batterie vielleicht langsam einfach zu neige? Sagt zwar 97, aber vielleicht ist alles unter 100 langsam zu wenig? Habe den Sensor einige Monate im Betrieb....
Danke euch fürs Lesen! :)
EDIT: Ich habe den Sensor jetzt auch mal rausgenommen, mit Wasser abgespült und neu in die Erde gesetzt. Evtl. misst er ja wirklich trockene Erd-Stellen oder so... Und wenn er nun immer noch spinnt, "messe" ich mal über 1-2 Tage mit dem Teil einfach ein Glas Wasser. Wenn er da auch abjittert, ist er im Eimer oder die Software spinnt...
Lag übrigens an der Batterie. Die war zwar laut Reading noch bei 97%, aber naja. ;) Neue Knopfzelle - alles wieder Tacko!
Vielleicht lag es auch nur daran, dass Du ihn mal stromlos gemacht hast.
Hast Du denn die Zelle mal durchgemessen?
Hallo in die runde,
auch wenn ich hier gerade grabräuberei betreibe :)
aber google hat das thema ausgegraben und meine frage bezieht sich direkt auf die xiaomi pflanzensensoren.
Ich weiß, ich bin hier auf einer seite die sich mit smart home befasst,
aber funktionieren die sensoren auch nur mit der xiaomi app und ohne irgendwelche server respektive verbindungen zum internet?
Meine vorstellung wäre, dass ich mich mit dem handy in die nähe befinde und die daten auslesen kann,
ohne das china mitbekommt wie es meinen pflanzen geht und ohne das ich irgendwelche zusätzliche soft-/hardware aufsetzen muss.
Holla und willkommen,
(auch wenn das wahrscheinlich ein kurzer Besuch wird ;) )
Kurzfassung, weil Du Dich sehr wahrscheinlich nicht Fhem, Deconz oder zigbee2mqtt beschäftigen möchtest:
Xiaomi App = Cloud = internet Zugang => BigBrother is watching you...
Zitat von: Arlen am 06 August 2020, 14:55:55
Meine vorstellung wäre, dass ich mich mit dem handy in die nähe befinde und die daten auslesen kann,
ohne das china mitbekommt wie es meinen pflanzen geht und ohne das ich irgendwelche zusätzliche soft-/hardware aufsetzen muss.
Grundsätzlich möglich, aber nicht ohne sich mit den oberen Dingen oder was ähnlichem zu befassen :)
Viele Grüße
Andreas
ZitatKurzfassung, weil Du Dich sehr wahrscheinlich nicht Fhem, Deconz oder zigbee2mqtt beschäftigen möchtest:
Xiaomi App = Cloud = internet Zugang => BigBrother is watching you...
Das hab ich schon befürchtet... :(
Und wenn ich der app jegliche berechtigungen entziehe zur kommunikation nach außen
dann funktioniert sie nicht, stimmts?
edit:
danke erstmal für die schnelle antwort
Hi,
evtl. wirfst du mal einen Blick auf https://docs.openmqttgateway.com/prerequisites/devices.html#for-ble-devices (was ähnliches gibt es auch für Tasmota). Das ist eine firmware für einen Microcontroller (ESP32, ca. 5 Euro auf gängigen Marktplätzen), mit der sich die Dinger auslesen und die Werte an einen (eigenen) MQTT-Server senden lassen. Gibt zwar auch Apps, die dann wieder direkt mit dem MQTT-Server reden könnten, aber komfortabler wird das mit einer MQTT-fähigen Heimautomatisierungslösung (u.a. OpenHAB ist z.B. dem Vernehmen nach einfacher als FHEM, afaik; aber auch ein MQTT2_SERVER in FHEM ist schnell aufgesetzt...).
Aber ganz ohne Einarbeitung usw. wird es wohl so oder so nicht gehen, und den Microcontroller müßtest du auch flashen (kein Hexenwerk, es gibt fertige Images, die man nur via USB mit dem passenden Tool auf den ESP übertragen muß)...
Viel Erfolg!