NEWS
Inkbird Wlan Thermometer Hygrometer IBS-TH3 einbinden
-
@jrudolph Danke für Deine großartige Leistung. Ich freue mich so, dass das Thema mit dem Inkbird Geräten gerade so aktuell ist.
Bin auch gerade dabei ein Gerät der Firma in den ioBroker zu bringen und dieser Forumsbeitrag hat mir dabei sehr geholfen.Seit ein paar Tagen kann ich einen IBS-TH3-WIFI und ein IBS-M2 mit IBS-P02R mein eigen nennen.
Jetzt bin ich gerade dabei Dein Script aufzuarbeiten. Leider kenne ich mich mit Java Script noch nicht so gut aus, bin aber guter Dinge das ich es an den IBS-M2 anpassen kann. Wäre es eventuell möglich in kurzen Worte zu beschreiben was der angezeigte String "CPwA////////ZA==" im Datenpunkt 103 (ch_1) bedeutet bzw. wie er interpretiert oder umgewandelt werden kann damit man auf den Temperaturwert kommt?
-
@smartin23 Das optimale Set hängt von den eigenen örtlichen Gegebenheiten und Installationswünschen ab. Ich habe mich aus folgenden Gründen für IBS-P01R und IBS-M1 (Gen.2) entschieden:
Die Entfernung vom Pool zum Haus ist relativ groß. Daher wollte ich die Funk-Ausführung "R" statt Bluetooth "B".
Das IBS-P01R hat im Set ein Display, das ich in Poolnähe hängen habe. Im Haus sehe ich natürlich im IOBroker Vis auf dem Tablet bzw. in IQontrol auf dem Handy die Wassertemperatur.
Das Gateway IBS-M1 (Gen.2) erlaubt bis zu 50 Inkbird-Geräte. Das Gateway sollte an der Stelle angebracht werden, wo alle Sensoren empfangen werden und natürlich ein brauchbares WLAN (2.4 GHz) verfügbar ist.
Diese Lösung ist für mich optimal. Der Batterieverbrauch des Poolsensors ist OK; etwas 1 bis 2 Batteriesätze pro Jahr. Das Ding ist absolut dicht. Gekauft hatte ich bei Amazon.Die P02R und M2 gab es damals noch nicht. Das M2 scheint eine Kombination aus Gateway und Display zu sein. Vorteil: ein Gerät weniger. Nachteil: Der Aufstellort muss WLAN und Funk vom Sensor empfangen, und sollte zum Ablesen des Displays sinnvoll sein.
-
@renzhammer-a Diese Strings, die auf "==" enden, sind Base64 codiert. Die müssten in einem ersten Schritt z.B. in Hex-Code umwandeln, so dass man abschätzen kann, was darin steckt. Hier sieht es mir so aus, dass die Temperatur 25,2 °C beträgt und die Batterie 100 % voll ist.
Für die Base64 Dekodierung kann man z.B. "https://cryptii.com/pipes/base64-to-hex" verwenden. Aus "CPwA////////ZA==" ergibt sich Hex "08 fc 00 ff ff ff ff ff ff 64". Das erste Byte "08" kann ich nicht vollständig erklären. Das zweite und dritte Byte sind die Temperatur "252" (Int16 Little Endian). Inkbird arbeitet mit 0,1°C Auflösung, daher sind es 25,2 °C. Die Bytes "ff ff ff ff ff ff" sind für weitere Sensoren des Devices reserviert. Und ganz am Ende ist die Hex "64" die Batterie mit dezimal 100%.
Das erledigt im Script die Funktion "chRtd" (Zeile 169 ff.). -
@jrudolph Vielen vielen Dank - das mit der Base64 Kodierung hätte ich nie herausgefunden. Hätte man da selbst drauf kommen können? Oder weiß man das aus Erfahrung oder Netzwerk mitschnitten?
Ich bin auf jeden Fall sehr beeindruckt und werde für die 5 Werte die ich aus meinen Geräten auslesen will ein für mich passendes Skript schreiben!
PS: Wo kann man eine Spende tätigen?
-
@renzhammer-a Es freut mich wenn es hilft. Bei dem TH3 müsste die Feuchte im 4. und 5. Byte stecken. Die Auflösung ist 0,1%. Byte 6+7 (Temp) und Byte 8+9 (Feuchte) werden bei externen Sensoren verwendet.
Der Beispieldatensatz war vermutlich vom Poolsensor, da er nur die eine Temperatur enthielt.
Base64 ist ein uraltes Verfahren aus den 70er/80er Jahren zur Übertragung von Binärdaten in Texten. Wird häufig in der Telemetrie verwendet. Prominenteste Anwendung ist das Attachment in einer Email. Das wird auch als Base64 eingebettet. In den 80ern hatte ich mir mein Mailprogramm auf dem Mainframe noch selbst geschrieben (es gab ja nichts fertiges). Daher ist es vertraut.
PS: Danke. Ich bin ein gut versorgter Rentner, der nebenbei am IT-Ball bleiben will. -
@renzhammer-a Ich überlege das Script so anzupassen, dass es für beide Gateways M1 und M2 funktioniert. Ich vermute, dass ich die Verarbeitung und Ausgabe zu userdata wiederverwenden kann und nur das Auslesen der Daten vom Tuya Adapter anpassen muss. Für die Entwicklung und Tests würde ich die Datenstruktur aus tuya.0.(gateway) für das M2 Gateway benötigen. Würdest Du mir einen JSON Datenexport zukommen lassen von diesem Zweig? Bitte per Email an info@rudolph.consulting .
-
@jrudolph said in Inkbird Wlan Thermometer Hygrometer IBS-TH3 einbinden:
JSON Datenexport
Sehr gerne schicke ich dir die Datenexport. Wie Du schon richtig vermutet hast, habe ich nur den IBS-P02R auf dem Gateway hängen. Und dieser übermittelt nur eine Temperatur und den Batteriestatus. Freue mich wenn ich mit der Datei weiterhelfen konnte
-
@jrudolph Super, danke! Das hat mir geholfen!
Habe nun ein Set mit dem M2 und dem 02R.
Aber wie verbinde ich das mit dem Tuya-Adapter? Da komme ich kein Stück weiter leider.
Könntet Ihr mir da helfen?
Habe bisher die Inkbird-App genutzt, um den M2 ins WLAN zu kriegen. Brauche ich auch die Tuya App? Oder wie geht es weiter?
-
@smartin23 Das steht eigentlich ganz oben im Eintrag vom 5.12.22.
Ich habe das ganze inkl. Anleitung jetzt ins Github gepackt: https://github.com/jurudolph/Inkbird
Da gibt es jetzt ein überarbeitetes Script für das IBS-M1 und seit eben auch ein Script für das IBS-M2. Bitte testen. @renzhammer-a hat mir dankeswerterweise einen Datenexport vom M2 zur Verfügung gestellt, den ich als Entwicklungsgrundlage für das M2 verwendet habe.
-
@jrudolph Aaaah, super! Jetzt hab ich's! Danke!!! Als nächstes schau ich mir das Skript an.
UPDATE: Das Skript ist echt suuuuper, läuft alles perfekt! Danke!!!
-
@smartin23 : Ich habe mir ebenfalls das Set aus M2 und 02R gekauft.
Die Einrichtung in der Inkbird App hat (unter iOS) problemlos funktioniert, aber jetzt stehe ich auf dem Schlauch.
In die Tuya Smartlife App bekomme ich den M2 nur wenn ich diesen neu verbinde, aber dann ist dieser aus der Inkbird App wieder raus.Kannst Du mir vielleicht einen Tipp geben, wie ich die Geräte in die Tuya App und dann in ioBroker (installiert auf einem Synology NAS) bekomme.
-
@aiffland Bisher kann man die Gateways nur entweder mit der Inkbird App oder mit der Tuya App verbinden. Beides gleichzeitig geht nicht. Wenn man die Daten im ioBroker haben will gibt es bisher nur die Möglichkeit über den Tuya Adapter. Aber in ioBroker hat man ja alle Möglichkeiten zur Datenverarbeitung und Darstellung (mehr als in der Inkbird App). Die Beschreibung zum Einbinden liegt in meinem Github (siehe ein paar Zeilen weiter oben).
-
@jrudolph
Hab heute mein Gateway IBS-M1 und den IBS-P01R bekommen.
Dein Script funktioniert hervorragend. Vielen Dank dafür.
Eine Frage noch: auf dem IBS-P01R bzw. auf dem Display wird noch mehr angezeigt, kann man diese Werte auch irgendwie auslesen ? -
@manfredhi Die auf dem Sensor bzw. Display angezeigten Max- und Min-Werte werden nicht zum Gateway übermittelt, sondern nur lokal berechnet und angezeigt. Das Display kommuniziert ja ohnehin nicht mit dem Gateway, nur der Sensor.
Prinzipiell speichert das Gateway auch Zeitreihen, die es in der Inkbird App anzeigen kann. Die müsste man über den Tuya Adapter auslesen können. Vermutlich gehen die History Daten über die Datenpunkte 115 (his_ask_cmd Abfragekommando), 116 (his_answer Antwortstatus) und 117 (his_data History Daten). Leider weiß ich nicht wie man das anstellen könnte (mangels Doku seitens Inkbird). -
@jrudolph :Vielen Dank, jetzt hat es geklappt und Dein Script liefert auch sofort die Werte. Top
Jetzt muss ich nur noch die Einbindung in Homekit hinbekommen, aber da scheint es Probleme mit der aktuellen Version von YAHKA und der aktuellen Homekitversion zu geben. Aber das ist eine andere Baustelle.
-
Hallo,
ich bin noch ioBroker-Anfänger und deshalb bitte ich um Nachsicht für meine "dummen" Fragen.
Ich habe ein Inkbird IBS-M2 mit IBS-P02R Poolthermometer.
Das IBS-M2 mit P02R habe ich in der Inkbird-App zum laufen bekommen. Jetzt wollte ich das ganze auch im ioBroker visualisieren und da fingen meine Probleme an
Ich habe verstanden, dass ich das IBS-M2 via Tuya-Adapter einbinden muss (und dass dadurch die Inkbird-App nicht mehr auf die Daten zugreifen kann).
Wenn ich den Tuya-Adapter installiere, dann bekomme ich ihn schon nicht korrekt zum Laufen, er bleibt immer gelb:
Ich habe einen Tuya Account und die Tuya Smart App installiert. In der App habe ich auch den IBS-M2 eingebunden. Wie muss ich jetzt den Adapter permanent konfigurieren?
Im Tab "Lokale Verbindungen" habe erstmal alles so gelassen auf default
Im Tab "Tuya Cloud & Synchronisierung" habe ich nur Region: "Europa" und Kontotyp "Tuya Smart" drin. Dann habe ich Cloudnamen und Passwort eingegeben.
Nach dem Neustart des Adapters wurden dann auch die Objekte im Tuya-Adapter korrekt erzeugt:
Auf Channel 1 habe ich den IBS-P02R connected.
Jetzt habe ich Javascript für den IBS-M2 konfiguriert und manuell ausgeführt, was mir allerdings folgenden Fehler bringt:
Im Userdata wurden aber trotz Fehler korrekt die DP´s erzeugt:
Jetzt meine generellen Verständnisfragen:
Wie erreiche ich es, dass sich die Werte automatisch aktualisieren im Userdata?
Muss ich das Javascript dazu per Cron aufrufen?
Muss ich im Adapter die Cloud-Zugangsdaten drin lasssen, damit die Abfrage immer vom Adapter über die Cloud läuft, oder geht das ganze auch lokal ohne Cloud nachdem ich den Adapter mit Cloud-Account gestartet habe?
Warum ist der Adapter immer gelb und nie grün, egal ob die richtigen Cloud-Anmeldaten drin habe oder nicht?Vielen Dank für Hilfe im voraus, aber ich komme hier irgendwie alleine nicht weiter
Gruß Adrian
Ich habe mal das komplette Logging des Javascripts angehangen: error_log-jsscript.txt -
@adih
Bin inzwischen selber schon etwas weiter gekommen, der Tuya-Adapter ist inzwischen "grün", ich musste die IP-adresse manuell noch von der IBS-M2 Bridge setzen.
Was bleibt sind die Fehlermeldungen des Javascripts und auch dass sich die User-DP´s scheinbar nicht automatisch aktualisieren. -
@adih Eigentlich sollte der Tuya Adapter selbst die IP Adresse ermitteln. Am besten mal den Tuya Adapter im Debug Modus starten und ins Protokoll schauen.
Auch mal in die Instanzeinstellungen des Tuya Adapter sehen. In dem Tab "Lokale Verbindungen" gibt es eine fett gedruckte Statuszeile. Die sollte so aussehen:
Status: 1 Geräte im Netzwerk gefunden, 1 Geräte lokal verbunden, 1 mit bekanntem Schema, 1 für lokale Echtzeitaktualisierungen und Steuerung initialisiert.
Der Tab "Tuya Cloud & Synchronisierung" enthält, wie schon von Dir geschrieben, die 4 Parameter Region, Konto, Cloud Benutzer und Passwort. Beim ersten Start, oder wenn ein erneutes Synchronisieren mit der Cloud benötigt wird, das Häckchen bei "Sollen die ... erneuert werden?".
Der Tab "Proxy ..." braucht nicht ausgefüllt werden.
Dann sollte der Tuya Adapter die Daten lokal ohne Cloud abfangen.
Wenn die Kommunikation des Tuya Adapters korrekt läuft sollte alles grün sein. Dann müssen die Timestamps der Parameter 103 und 104 sich alle 10 Sekunden aktualisieren.
Dann das Script ggf. nochmal starten. Es sollte dann keine Fehler mehr werfen.
Ein Cron ist nicht erforderlich, da alle notwendigen Events in den Scriptzeilen 103 bis zum Ende abonniert werden und somit eine automatische Aktualisierung stattfindet. -
@jrudolph
Hallo, erstmal vielen Dank für Deine schnelle Hilfe.
Nach vielen, vielen Tests bin ich auch schon ein bisschen weiter gekommen.
Trotz kompletter Neu-Installation des Adapters/Tests mit "tuya Smart" und "Smart Life"-Accounts erkennt der Adapter die IP-Adresse des MH2-Gateways nicht automatisch, im Debug Log steht dass das UDP-Paket nicht sauber zugeordnet werden konnte.
Wenn ich aber die IP-Adresse wie oben beschrieben setze, dann bekomme ich als Ergebnis genau die von Dir beschriebene Statuszeile.
Das JScript hat aber immer noch Fehler, warum auch immer bleibt es bei der Erzeugung des Channel4 hängen. Da ich ja aber nur den Channel0 + Channel 1 auslesen möchte habe ich einfach "iChMax = 1" gesetzt, dann läuft es sauber.
Ich habe aber immer noch ein paar kleine Probleme:- der Adapter geht ca. 1mal am Tag in den Status "gelb", d.h. "Verbunden mit Gerät oder Dienst" ist dann fehlerhaft. Ein Neustart der Instance hilft dann immer.
- das updaten der DP´s 103/104 geht nicht im 10sec-Takt, teilweise erfolgt gar kein Update, dann wieder mehr oder weniger unregelmäßig, teilweise muss ich die Instanz erst neu starten
Ich nutze für den ioBroker das Beta-Repository, kann es damit zusammenhängen? tuya-Adapter Version ist v3.14.2, gibt es vielleicht eine andere Version, die stabiler/besser läuft?
Gruß Adrian
-
@adih Die Adapter Version ist OK. Die verwende ich auch. Da scheint noch ein Kommunikationsproblem zwischen Tuya Adapter und Gateway zu bestehen.
Was kommt denn, wenn Du auf der Installationsseite des Tuya Adapters im Tab "Tuya Cloud & ..." auf das Wiedergabe-Symbol zur Synchronisation klickst? Kommt da eine Erfolgsmeldung? Und wie ist der Status, den ich oben erwähnte?