NEWS
Homeduino an Iobroker anbinden
-
Hallo,
hat jemand von euch schon den Homeduino an Iobroker angebunden? Und wenn ja wie?
VG
Abry88
-
Hi Abry!
Ich hab meinen homeduino in iobroker eingebunden.
Hab heute leider keine Zeit mehr aber ich kann dir morgen gerne den geänderten Sketch hier rein stellen und das passende Skript!
Gruß Johnny
-
Hi Johnny,
das wäre super überlege gerade auch ein homeduino einzubinden.
Bindest du ihn denn direkt in iobroker ein?
VG Abry88
-
Hallo Jungs,
die Sache würde mich auch sehr interessieren !
Grüße Ingo
-
Moin, Moin!
Sorry , für die Verspätung.
Also hier mal zwei Sketche für den Homeduino.
In beiden ist auch ein SHT21 (Temp-Feuchte-Sensor) mit eingearbeitet. Die lib ist in der ZIP-Datei mit bei.
Der erste Sketch sendet nur an IoBroker und der zweite sendet gleichzeitig an IoBroker und CCU2.
Kann ja sein das einer die Daten auch parallel auf der CCU haben möchte.
Wichtig in beiden Sketchen ist das anpassen der IP-Adresse(n) für IoBroker und ggf CCU
Desweiteren hab ich ein Javascript noch mit angehängt zum erstellen der Objects in IoBroker.
Die muss dann jeder nur auf seine Wünsche anpassen. Ist aber selbsterklärend.
function CreateAllStates(){ createState("javascript.0.Technikraum.Homeduino.homeduino_001_IP", 0, {read: true, write: true, name: 'Homeduino IP', desc: 'Homeduino IP'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D11", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten Fenster links kipp', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D12", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten Fenster links offen', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D18", true, {read: true, write: true, type: 'boolean', name: 'Bewegungsmelder Gartennlage', desc: 'true = inaktiv, false=Bewegung'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D19", false, {read: true, write: true, type: 'boolean', name: 'LED-Fluter Garten', desc: 'false=aus, true=an'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D24", false, {read: true, write: true, type: 'boolean', name: 'Alarm-LED grün rot', desc: 'Alarm-LED grün rot'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D25", true, {read: true, write: true, type: 'boolean', name: 'RFID-Haustür', desc: 'RFID-Haustür'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D26", true, {read: true, write: true, type: 'boolean', name: 'Briefkastensperre', desc: 'Briefkastensperre'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D27", true, {read: true, write: true, type: 'boolean', name: 'Briefeinwurf', desc: 'Briefeinwurf'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D28", true, {read: true, write: true, type: 'boolean', name: 'Garagentor', desc: 'Garagentor'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D29", 0, {read: true, write: true, type: 'number', name: 'Wintergarten DHT22 Temperatur', desc: 'Wintergarten DHT22 Temperatur', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D29_1", 0, {read: true, write: true, type: 'number', name: 'Wintergarten DHT22 Luftfeuchte', desc: 'Wintergarten DHT22 Luftfeuchte', unit:'%'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D62", 0, {read: true, write: true, type: 'number', name: 'Pufferspeicher Kerntemperatur', desc: 'Pufferspeicher Kerntemperatur', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D63", 0, {read: true, write: true, type: 'number', name: 'Austritt Warmwasser', desc: 'Austritt Warmwasser', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D64", 0, {read: true, write: true, type: 'number', name: 'Eintritt Zirkulation', desc: 'Eintritt Zirkulation', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D65", 0, {read: true, write: true, type: 'number', name: 'Vorlauf Speicher', desc: 'Vorlauf Speicher', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D66", 0, {read: true, write: true, type: 'number', name: 'Rücklauf Speicher', desc: 'Rücklauf Speicher', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D67", 0, {read: true, write: true, type: 'number', name: 'Eintritt Kaltwasser', desc: 'Eintritt Kaltwasser', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D68", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten Fenster rechts kipp', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D69", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten Fenster rechts offen', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_SHT_Feuchte", 0, {read: true, write: true, type: 'number', name: 'Aussenluftfeuchte SHT21', desc: 'Luftfeuchtesensor SHT21 Aussen', unit:'%'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_SHT_Temp", 0, {read: true, write: true, type: 'number', name: 'Aussentemperatur SHT21', desc: 'Temperatursensor SHT21 Aussen', unit:'°C'}); } CreateAllStates();
Ich hoffe das hilft euch weiter
Gruß
Johnny
1058_homeduino-ccu_u_iobroker.zip
1058_homeduino-sht2x_iobroker.zip -
Cool Danke
Werde ich mal testen
VG
-
Hi Johnny,
danke für deine Scripts.
Ich habe jetzt den Homedino und auch eine das Script soweit angepasst und eingefügt.
Ich hab auch dein js script gestartet damit er die Objekte unter javascript.0 anlegt.
Auch das hat geklappt.
Was aber jetzt nicht klappt. Die gemessenen Werte werden im IOBroker nicht angenommen. Auch im Log steht nichts.
Muss ich erst einen Adapter dazu installieren?
Wenn ich z.B. mit Wireshark auf meiner Netzwerkkarte mithöre dann sehe ich das die Pakete aber richtig vom Homeduino an den Server gesendet werden.
Woran kann es denn noch liegen?
-
Hi Abry,
Hast du im web-Adapter den Hacken bei 'Eingebautes Simple API' gesetzt?
Sonst geht es nicht
Gruß Johnny
-
Danke für die schnelle Antwort
Hat geklappt!
-
Hallo,
ich habe Iobroker auf einem Raspi mit der IP 192.168.1.180 installiert.
Der Homeduino hat die IP 192.168.1.145.
Im Serial Monitor der Arduino IDE sehe ich das versucht wird eine Verbindung aufzubauen und Daten zu senden.
Welche Adapter muss ich in Iobroker installieren um den Homduino anbinden zu können?
Da ich mich erst seit kurzem damit beschäftige wäre eine Hilfe von euch sehr willkommen.
Vielen dank schon mal.
Gruß
Manfred
-
Auch bei mir funktioniert das toll.
Danke für die gute Erklärung und die Skripte !!
Gruß
Thomas
-
Vielen Dank für die Ausführungen!
Wenn ich das richtig verstanden habe, wird hier der "ioBroker simple web Adapter" mit seiner eingebauten simpleAPI über Port 8082 verwendet.
Ich verwende derzeit die eigenständige simpleAPI (Port8087) https://github.com/ioBroker/ioBroker.simple-api . Dort gibt es mittlerweile setBulk, womit man gleich mehrere Werte auf einen Streich setzen kann. Find ich sehr praktisch.
Befehle lt. help:
"getPlainValue": "http://ipaddress:8087/getPlainValue/stateID", "get": "http://ipaddress:8087/get/stateID/?prettyPrint", "getBulk": "http://ipaddress:8087/getBulk/stateID1,stateID2/?prettyPrint", "set": "http://ipaddress:8087/set/stateID?value=1&prettyPrint", "toggle": "http://ipaddress:8087/toggle/stateID&prettyPrint", "setBulk": "http://ipaddress:8087/setBulk?stateID1=0.7&stateID2=0&prettyPrint", "objects": "http://ipaddress:8087/objects?pattern=system.adapter.admin.0*&prettyPrint", "objects": "http://ipaddress:8087/objects?pattern=system.adapter.admin.0*&type=adapter&prettyPrint", "states": "http://ipaddress:8087/states?pattern=system.adapter.admin.0*&prettyPrint"
-
Hi klassisch!
Ja das mit setBulk ist/wäre ne feine Sache. Man muss aber aufpassen das die Gesamtlänge der URL einen bestimmten Wert nicht überschreitet da in sonst das Ethernetshield nicht verarbeitet.
Ich weiß bloß jetzt aus m Kopf nicht wie die Limitierung war.
Da bin ich drauf gestoßen als ich meine Wetterstation auf setBulk umstellen wollte. Kleiner Befehle gingen und bei größeren kam nichts an.
Gruß
Johnny
-
Hi, Johnny,
vielen Dank für den Hinweis. Habe mal bei Apollon77 nach den Limitationen gefragt. Denke, dann wissen wir mehr.
-
Hi klassisch, die Limitierung der Gesamtlänge der URL ist n Problem vom ethernet shield. Hat, glaub ich mal gelesen zu haben, nen Zusammenhang mit der SPI Schnittstelle wo das ethernet shield andockt.
-
Gut, das macht Sinn. Bei meinen ESP8266 bin ich bei der Web-Ausgabe an den Browser auch an eine soche Grenze gestoßen. Wenn die Antwort zu lang wird, fehlt plötzlich ein Teil, also ein Großteil.
Apollon hat ja auch geantwortet, daß wissentlich und willentlich keine Limitation in den Adapter eingeabut ist. Es wird aber irgendwo in der Kette eine geben.
-
Also über spi ist der buffer wohl 64 Byte groß.
Für mich stellt sich die Frage wie man am besten mit client.print die Übertragung mit setBulk kombiniert.
Derzeit sende ich über set jede Variable in einer eigenen URL. Mit setBulk wäre das natürlich ne leitungslösung da ich dann nur immer einmal übertragen musste um alle Variablen zu aktualisieren.
Gruß Johnny
-
als blutiger homeduino Anfänger habe ich da ne Frage:
createState("javascript.0.Technikraum.Homeduino.homeduino_001_IP", 0, {read: true, write: true, name: 'Homeduino IP', desc: 'Homeduino IP'});
muss da die IP vom Homeduino rein, oder holt der sie sich selber? :?:
-
Hi
In dem state hinterlegt der Homeduino später seine IP Adresse die er vom Router bekommen hat.
Dann siehst du welche IP Adresse dein Homeduino hat
Gruß Johnny
-
heul, ich kriege es nicht hin
wollte hier D2 und 3 konfigurierenfunction CreateAllStates(){ createState("javascript.0.Technikraum.Homeduino.homeduino_001_IP", 0, {read: true, write: true, name: 'Homeduino IP', desc: 'Homeduino IP'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D2", false, {read: true, write: true, type: 'boolean', name: 'Wintergarten Fenster links kipp', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D3", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten Fenster links offen', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D4", true, {read: true, write: true, type: 'boolean', name: 'Bewegungsmelder Gartennlage', desc: 'true = inaktiv, false=Bewegung'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D4", false, {read: true, write: true, type: 'boolean', name: 'LED-Fluter Garten', desc: 'false=aus, true=an'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D5", false, {read: true, write: true, type: 'boolean', name: 'Alarm-LED grün rot', desc: 'Alarm-LED grün rot'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D6", true, {read: true, write: true, type: 'boolean', name: 'RFID-Haustür', desc: 'RFID-Haustür'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D7", true, {read: true, write: true, type: 'boolean', name: 'Briefkastensperre', desc: 'Briefkastensperre'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D8", false, {read: true, write: true, type: 'boolean', name: 'Briefeinwurf', desc: 'Briefeinwurf'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D9", true, {read: true, write: true, type: 'boolean', name: 'Garagentor', desc: 'Garagentor'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D10", 0, {read: true, write: true, type: 'number', name: 'Wintergarten DHT22 Temperatur', desc: 'Wintergarten DHT22 Temperatur', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D11", 0, {read: true, write: true, type: 'number', name: 'Wintergarten DHT22 Luftfeuchte', desc: 'Wintergarten DHT22 Luftfeuchte', unit:'%'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D12", 0, {read: true, write: true, type: 'number', name: 'Pufferspeicher Kerntemperatur', desc: 'Pufferspeicher Kerntemperatur', unit:'°C'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D13", 0, {read: true, write: true, type: 'number', name: 'Austritt Warmwasser', desc: 'Austritt Warmwasser', unit:'°C'}); } CreateAllStates();
und hier das Script,
aber ich bekomme weder was raus noch rein.
Nur die states die im script stehen habe ich auch so als Object,
die gefundene IP passt
update: das mit den Eingängen habe ich hin bekommen, was noch fehlt die Ausgänge…
geht das mit dem io20 überhaupt?
function CreateAllStates(){ createState("javascript.0.Technikraum.Homeduino.homeduino_001_IP", 0, {read: true, write: true, name: 'Homeduino IP', desc: 'Homeduino IP'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D2", 0, {read: true, write: true, type: 'state', name: 'Wintergarten Fenster links kipp', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D3", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten Fenster links offen', desc: 'true = geschlossen, false=offen'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D4", true, {read: true, write: true, type: 'boolean', name: 'Bewegungsmelder Gartennlage', desc: 'true = inaktiv, false=Bewegung'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D4", true, {read: true, write: true, type: 'boolean', name: 'LED-Fluter Garten', desc: 'false=aus, true=an'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D5", true, {read: true, write: true, type: 'boolean', name: 'Alarm-LED grün rot', desc: 'Alarm-LED grün rot'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D6", true, {read: true, write: true, type: 'boolean', name: 'RFID-Haustür', desc: 'RFID-Haustür'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D7", true, {read: true, write: true, type: 'boolean', name: 'Briefkastensperre', desc: 'Briefkastensperre'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D8", true, {read: true, write: true, type: 'boolean', name: 'Briefeinwurf', desc: 'Briefeinwurf'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D9", true, {read: true, write: true, type: 'boolean', name: 'Garagentor', desc: 'Garagentor'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D10", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten DHT22 Temperatur', desc: 'Wintergarten DHT22 Temperatur'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D11", true, {read: true, write: true, type: 'boolean', name: 'Wintergarten DHT22 Luftfeuchte', desc: 'Wintergarten DHT22 Luftfeuchte'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D12", true, {read: true, write: true, type: 'boolean', name: 'Pufferspeicher Kerntemperatur', desc: 'Pufferspeicher Kerntemperatur'}); createState("javascript.0.Technikraum.Homeduino.homeduino_001_D13", true, {read: true, write: true, type: 'boolean', name: 'Austritt Warmwasser', desc: 'Austritt Warmwasser'}); } CreateAllStates();