NEWS
Ansteuerung von selbst entwickelten Geräten
-
Hi zusammen,
habe mich für ioBroker entschieden, da ich hier die beste Möglichkeit sehe meine selbst entwickelten SmartHome Komponenten mit bestehenden Systemen sinnvoll zu verknüpfen.
Ich habe ein Sensor/Aktor Netz mit NRF24L01+ Transceivern programmiert und verbaut. Nun hat man natürlich irgendwann auch den Anspruch dem Ganzen ein wenig Logik hinzuzufügen und verschiedene Aufgaben automatisiert erledigen zu lassen. Hinzu kommt, dass ich einige Aktoren von Homematic interessant finde und gerne mit einbinden möchte.
Folgende Sensoren/Aktoren habe ich im Moment:
-
Raumsensor (Temperatur/Luftfeuchte/Luftdruck/Helligkeit)
-
Fensterkontakte (Offen/Gekippt/Geschlossen)
-
Bewegungsmelder (Aktiv/Inaktiv)
-
Relais-Schalter (An/Aus)
-
RGB-LED-Dimmer (RGB: jeweils 0-100%/An/Aus)
-
viele weitere Ideen
Alle Sensoren/Aktoren sprechen im Moment mit einer Basisstation, die über eine serielle Schnittstelle (UART->USB-Wandler) am Raspberry Pi hängt. Dort arbeitet ein Python-Skript, das sich um die Schnittstelle kümmert. Visualisiert wird das Ganze durch die Homebridge.
Kurz zum Protokoll:
2 Byte Adresse, 1 Byte Status, x Byte Nutzdaten, 1 Byte Checksum
Ich habe es bereits mit dem Javascript Adapter probiert und über serialport Werte verschickt. Allerdings bin ich hier mit den ganzen Objekten noch nicht so vertraut. Javascript ist mir auch noch nicht so vertraut. Komme aus der C Ecke und habe von Objektorientierung keine Ahnung.
Eine weitere Idee war es das ganze über MQTT laufen zu lassen. D.h. das Python-Skript bedient nicht (nur) die Homebridge sondern den MQTT-Broker und ioBroker reagiert darauf.
Nun zu meiner eigentlichen Frage:
Wie kann ich die einzelnen Geräte mit ihren verschiedenen Werten am besten in ioBroker integrieren? Gibt es bessere Lösungen, als die von mir vorgeschlagenen?
Viel Grüße
Dominik
-
-
Hi Dominik,
ja, die gibt es.
Am einfachsten ist der Weg über die simpleAPI.
Du setzt dann einfach http reqests mit deinen Werten ab,
und die landen dann im iobroker.
Ein Beipiel:
Dein Temperatursensor im Wohnzimmer meldet 23.5 C.
Der Befehl: http://IP-IOBROKER:PORT/set/wohnzimmer.temperatur?value=23.5
schickt diesen Wert an den iobroker - Fertig
Viele Grüße
Christian
-
Hi Christian,
danke für deinen Vorschlag.
Die Idee mit den HTTP Requests ist für die Übermittlung von Daten zum ioBroker gar nicht schlecht. Allerdings krieg ich so keine Daten aus dem ioBroker raus. Da scheint mir MQTT sinnvoller.
Mir wäre es eigentlich am liebsten die serielle Schnittstelle direkt zu verwenden.
Viele Grüße
Dominik
-
Hi Dominik,
naja, der umgekehrte Weg geht natürlich auch,
Du kannst von deinen ESPs/Arduinos mit: http://IP-IOBROKER:PORT/get/sensor.wert
beliebige Werte auslesen.
Klar läuft auch alles über MQTT, ist aber ungleich aufwendiger!
Viele Grüße
Christian
-
Hi Christian,
ich habe weder ESP noch Arduino in meinen Sensoren/Aktoren verbaut. Die serielle Schnittstelle kommuniziert mit einem Controller, der wiederum die Daten an die Aktoren sendet bzw. die Daten von den Sensoren empfängt.
Ich müsste in beiden Fällen (MQTT und HTTP) in meinem Python-Skript eine Schnittstelle bereitstellen, die Daten des ioBrokers empfängt bzw. an diesen sendet. Hier finde ich MQTT komfortabler.
Allerdings wäre es mir am liebsten, dass ich mir diesen Umweg sparen könnte und direkt über den UART Befehle auswerten/senden zu können.
Gibt es im Javascript Adapter die Möglichkeit ein Skript laufen zu lassen, das die serielle Schnittstelle überwacht und wenn etwas empfangen wird dann die Werte im ioBroker gesetzt werden? Bzw. dass der ioBroker einen Befehl an dieses Skript schickt, damit ein Kommando gesendet werden kann?
Viele Grüße
Dominik
-
Wie weit bist du mit deinen JS versuchen und serialport gekommen?
Wenn du etwas verwertbares programmiert hast zeig es mal. Grundsätzlich ist es möglich so etwas um zu setzen, es gibt auch einige Adapter wie den enocean und zwave die mit serialport arbeiten.
Gesendet von meinem m8 mit Tapatalk
-
Hi,
Die Ansteuerung des serialports ist mir bereits gelungen. Allerdings fehlt mir noch die Idee wie ich die Objekte sinnvoll erstelle bzw. die Zustände eintrage oder eine Zustandsänderung von mehreren Objekten erkennen kann.
Zudem bin ich mit der Organisation von iobroker noch nicht wirklich vertraut (Objekte, Instanzen, States).
Ich melde mich sobald ich etwas neues habe.
Kann mir hier vielleicht jemand Tipps geben, wie das Ganze am besten und einfachsten organisiert werden könnte? Gerne auch Links zu ähnlichen Projekten oder Hilfeseiten.
Vielen Dank schonmal für die bisherigen Tipps.
Viele Grüße
Dominik
-
Hier gibts Allgemeine infos und weiter Links: https://github.com/ioBroker/ioBroker
Dein Anliegen geht aber schon eher in Richtung Adapter Entwicklung und deshalb hier der Link zur Development Dokumentation: https://github.com/ioBroker/ioBroker/wi … umentation
Dort solltest du die Infos finden die du brauchst um die Struktur zu verstehen.
-
Hi,
danke für den Tipp. Die Doku ist relativ gut, was mir allerdings den Einstieg auch erleichtert hat war dieses Video:
https://www.youtube.com/watch?v=fUMtyYOtRcQ
Vielleicht hilft es dem ein oder anderen.
Ich melde mich sobald ich meinen serialport Adapter fertig habe.