Hallo,
ich bin mit der ersten Implementierung von FHEM<=>ioBroker Kopplung fertig.
Es gibt für mich, als Fremder, viele Fragen und unklare Stellen. Aber ich werde trotzdem versuchen.
ioBroker ist noch ein Automatisierungssystem, das aber komplett mit Javascript geschrieben ist.
ioBroker unterscheidet sich vom FHEM, dass es keine Konfig-Dateien editiert werden müssen und alle Einstellungen passieren mittels GUI im WEB. Auch man kann mit Hilfe vis, mobile, flot sehr schöne Visualisierungen machen.
FHEM ist bekannt von vielen Anbindungen, die implementiert sind und eine riesige Community. Man kann wunderbar die Synergie zwischen zwei Projekten benutzen.
Es gibt aber auch noch offene Fragen:
- gibt es die Möglichkeit die Meta-Information über "Readings" zu bekommen? So was wie: Einheit, Typ (bool, string, number)
- wie kann ich die Werte über telnet schreiben? "setstate wetter_prenzelberg windDegrees 67.9" ?
- Es müssen vermutlich nicht nur "Readings" geben sonder auch "Settings" oder "Writings"?
Um ioBroker zu installieren braucht man node.js 4.0 (nicht 5.0 oder 6.0) und folgendes zu schreiben:
mkdir /opt/iobroker
chmod 777 /opt/iobroker
cd /opt/iobroker
npm install iobroker
chmod 777 * -R
Danach sollte ioBroker Admin über http://IP:8081 erreichbar sein.
Nach dem als FHEM adapter installiert ist (sehe Bilder), kann man auch mobile und vis Adapter installieren und die Visualisierung machen.
Falls Fragen gibt, am besten am http://forum.iobroker.net fragen oder einfach hier schreiben.
Es gibt auch Dokumentation (noch in der Entwicklung) unter http://iobroker.net
Es kommen noch weitere Fragen.
Ich beobachte MeinWetter.
{
"Name":"MeinWetter",
"PossibleSets":"update",
"PossibleAttrs":"verbose:0,1,2,3,4,5 room group comment:textField-long alias eventMap userReadings:textField-long event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon devStateStyle fp_Erdgeschoss icon sortby webCmd widgetOverride userattr",
"Internals": {
"DEF": "638242 3600 de",
"INTERVAL": "3600",
"LANG": "de",
"LOCATION": "638242",
"NAME": "MeinWetter",
"NOTIFYDEV": "global",
"NR": "66",
"NTFY_ORDER": "50-MeinWetter",
"STATE": "Initialized",
"TYPE": "Weather",
"UNITS": "c"
},
"Readings": {
"current_date_time": { "Value":"none", "Time":"2016-05-30 18:14:23" },
"lastError": { "Value":"connect to https://query.yahooapis.com:443 timed out", "Time":"2016-06-01 09:47:50" },
"validity": { "Value":"stale", "Time":"2016-06-01 09:47:50" }
},
"Attributes": { "room": "Wettervorhersage" }
},
Da Gibt es lastError und validity in Readings. Ich kann aber das nicht unter PossibleAttrs oder PossibleSets finden. D.h. Falls die Werte nicht gesetzt sind, dann habe ich keine Chance die Readings vor definieren. Erst wenn die gesetzt sind werde ich über die erfahren?
- Können alle Objekte "lastError" und "validity" haben?
- Welche Werte kann "validity" haben?
Zitat- gibt es die Möglichkeit die Meta-Information über "Readings" zu bekommen? So was wie: Einheit, Typ (bool, string, number)
Nein, hoechstens als Experimentalversion, irgendwo versteckt.
Es gibt hier aber immer wieder Diskussionen, dass sowas noetig ist, die Letzte war mWn diese (http://forum.fhem.de/index.php?topic=46730.new#new).
Wozu wuerde man diese Info im iobroker verwenden?
Zitat- wie kann ich die Werte über telnet schreiben? "setstate wetter_prenzelberg windDegrees 67.9" ?
Werte schreiben ist sehr unpraezise, muss also raten: wenn man ein Ereignis simulieren will, dann mit trigger. Wenn man einen Aktor schalten will, dann mit set. setstate aendert den Status eines Aktors, ohne ein Befehl zu senden, z.Bsp. ist das bei der Initialisierung noetig.
Evtl. ist es aber sinnvoller ein ioBrokerDevice Modul zu erstellen, der diese Sachen direkt erledigt, ohne den Umweg ueber dummys/etc.
Zitat- Es müssen vermutlich nicht nur "Readings" geben sonder auch "Settings" oder "Writings"?
Heisst anders:
- Die Liste der moeglichen set Befehle kriegt man mit "set Geraet ?", Rueckgabewert ist eine Leerzeichen getrennte Liste, an den einzelnen Worten haengt optional mit Doppelpunkt getrennt die Liste der Moeglichen Werte (siehe http://fhem.de/commandref.html#widgetOverride). Das gleiche Info steckt auch in JsonList2 bzw. XmlList
- Analog gibt es "get Geraet ?"
- Attribute: Vom Benutzer aenderbare Parameter, die das Verhalten beeinflussen, siehe "attr Geraet ?"
- Internals: Sachen, die nicht gespeichert werden muessen, werden aber zum Laufzeit benoetigt.
- Readings: Von den Geraeten gemeldete Werte, die von FHEM gespeichert werden
ZitatD.h. Falls die Werte nicht gesetzt sind, dann habe ich keine Chance die Readings vor definieren.
Was genau meinst du, mit "vor definieren"?
ZitatErst wenn die gesetzt sind werde ich über die erfahren?
Korrekt. Es gibt keine Liste aller Readings, es sei denn, der Modulautor hat sie dokumentiert.
Ich moechte auch davor warnen, dass ein Frontend/anderes System versucht alle Readings/Attribute/Sets zu "verstehen". Dazu gibt es zu viele, und die aendern sich auch taeglich. Die Welt ist nicht so uniform, wie man es denkt.
Nutze seit ca. einem Jahr beide Systeme über MQTT gekoppelt. Dies funktioniert einwandfrei - ist aber aufwendig in der Konfiguration. Der Einarbeitungsaufwand in FHEM ist höher. Er lohnt sich angesichts der vielen ausgereiften Module auf jeden Fall.
Ich freue mich auf die vielen neuen Möglichkeiten.
Hallo Rudi! ;)
Höchst persönlich ;D Danke für deine Antworten.
Zitat von: rudolfkoenig am 01 Juni 2016, 10:17:20
Wozu wuerde man diese Info im iobroker verwenden?
Na ja.
- Erstens muss man wissen wie die Daten gesteuert werden müssen. Ob man ein string, Nummer oder Boolean schreiben darf. Die Werte, die geschrieben werden, werden automatisch angepasst (aus "1" wird ein true, falls "boolean" und aus "5,6" wird ein 5.6, falls number)
- Um SQL platz zu sparen werden alle Variablen in 3 Tabellen geteilt (bool, number, string) und natürlich die Units werden nicht im SQL abgespeichert. Die ändern sich doch nie.
- Es wird überall (flor, telegram, mobile) versucht die Units zu zeigen. Damit funktioniert die Formatierung richtig (Zahlen nach Komma usw, Punkt statt Komma als float divider)
- In den Charts werden dann die Units auch angezeigt aber nicht im SQL gespeichert.
- vielleicht noch irgendwo... ;)
Zitat von: rudolfkoenig am 01 Juni 2016, 10:17:20
Werte schreiben ist sehr unpraezise, muss also raten: wenn man ein Ereignis simulieren will, dann mit trigger. Wenn man einen Aktor schalten will, dann mit set. setstate aendert den Status eines Aktors, ohne ein Befehl zu senden, z.Bsp. ist das bei der Initialisierung noetig.
Das ist schon was. Ich brauche also "set"
Zitat von: rudolfkoenig am 01 Juni 2016, 10:17:20
Evtl. ist es aber sinnvoller ein ioBrokerDevice Modul zu erstellen, der diese Sachen direkt erledigt, ohne den Umweg ueber dummys/etc.
Da ich im Perl nur zwei Zeilen geschrieben habe und dafür die noch vergessen habe wird dieser Weg für mich kompliziert und dass heißt, man muss noch eine Konfig-datei schreiben. Das will ich aber vermeiden :)
Zitat von: rudolfkoenig am 01 Juni 2016, 10:17:20
Heisst anders:
- Die Liste der moeglichen set Befehle kriegt man mit "set Geraet ?", Rueckgabewert ist eine Leerzeichen getrennte Liste, an den einzelnen Worten haengt optional mit Doppelpunkt getrennt die Liste der Moeglichen Werte (siehe http://fhem.de/commandref.html#widgetOverride). Das gleiche Info steckt auch in JsonList2 bzw. XmlList
- Analog gibt es "get Geraet ?"
- Attribute: Vom Benutzer aenderbare Parameter, die das Verhalten beeinflussen, siehe "attr Geraet ?"
- Internals: Sachen, die nicht gespeichert werden muessen, werden aber zum Laufzeit benoetigt.
- Readings: Von den Geraeten gemeldete Werte, die von FHEM gespeichert werden
Danke. Werde ich experimentieren.
Zitat von: rudolfkoenig am 01 Juni 2016, 10:17:20
Was genau meinst du, mit "vor definieren"?
Also im ioBroker werden alle mögliche Variablen von Geräten sofort angelegt. Egal ob die momentan Werte haben oder nicht. Das braucht man für die Konfiguration, damit ich die Variablen schon bequem im Konfig Dialog auswählen kann oder im WEB Visualisierung projektieren.
Zitat von: rudolfkoenig am 01 Juni 2016, 10:17:20
Korrekt. Es gibt keine Liste aller Readings, es sei denn, der Modulautor hat sie dokumentiert.
Ich moechte auch davor warnen, dass ein Frontend/anderes System versucht alle Readings/Attribute/Sets zu "verstehen". Dazu gibt es zu viele, und die aendern sich auch taeglich. Die Welt ist nicht so uniform, wie man es denkt.
Hm... Na ja. vielleicht wird es trotzdem irgendwie funktionieren.
Es gibt noch Fragen:
- Können alle Objekte "lastError" und "validity" haben?
- Welche Werte kann "validity" haben?
- Wie kann ich JsonList2 Info nur für ein Gerät bekommen?
Danke.
Zitat- Können alle Objekte "lastError" und "validity" haben?
Falsche Frage. Buchstabengenau beantwortet: ja. Oder auch: keine Ahnung: was ist lastError und validity? Vmtl. Internals/Readings eines bestimmten Moduls, die andere Module (z.Bsp. meine) nicht haben.
ZitatWie kann ich JsonList2 Info nur für ein Gerät bekommen?
http://fhem.de/commandref.html#JsonList2
Will dich nicht aergern, aber man schaut bitte zuerst da nach.
Und wenn man da was nicht verstanden hat, dann hier.
Danke für die Information.
Ich habe jetzt Schreiben auch implementiert, aber man muss natürlich wissen, was man schreibt. :)
Falls während Laufzeit ein "inform" mit dem unbekanntem Attribut oder unbekanntem Gerät kommt, dann wird gezielt noch mal die Information über JsonList2 angefordert in der Hoffnung, dass neues Attribut jetzt in JSON Objekt drin steht.
Falls es jemand ausprobieren kann, währe es super.
Es gibt neue Version von FHEM Adapter.
Da werden jetzt RGB und on/off Geräte unterstützt.
Bitte noch weitere Steuerungsmodelle anbieten.
FHEM adapter funktioniert für RGB und on/off.
Kann jemand hier Rolladen und Dimmer posten?
JsonList2 Gerät
Hi, habe gerade den Umstieg von reiner Homematic CCU Lösung auf FHEM hinter mir und bin begeistert, was ich mit FHEM alles machen kann. Größtes Manko ist für mich persönlich das Fehlen eines UI Editors, mit dem man ohne Java- und HTML- und CSS-Code zu schreiben einfach WYSIWYG-mässig seine Oberfläche für das Tablet zusammenklicken kann. Das hat bei meiner reinene CCU basierten Lösung genial mit DashUI/CCU.IO geklappt und etwas ähnliches gibt es leider für FHEM nicht, dachte ich.
Bis ich auf diesen Thread hier gestoßen bin! Leider scheint hier seit einiger Zeit nichts mehr zu passieren, bin daher nicht sicher ob die FHEM Integration aufgegeben wurde oder einfach nur stockt.
Ich würde mich auf jeden Fall gern als Beta Tester / Lieferant für Beispieldaten zur Verfügung stellen, meine ioBroker Instanz meldet mir nämlich ne Menge "unknown event"'s und ich glaube, ich habe eine mittelgroße Sammlung von Geräten, darunter eine ganze Menge Homematic, einige FS20 sowie Fritz!Dect etc. Leider keine Rolladensteuerungen, deswegen kann ich dazu nichts wirkliches sagen...
Kann ich irgendwie helfen? Programmiererfahrung ist vorhanden, auch wenn ich mich mit Java schwer tue (bin gerade dabei, mir wegen FHEM noch Perl anzueignen und das klappt schon ganz gut).
Danke auf jeden Fall für die unglaublichen Mühen, die alle FHEM Entwickler (und auch die ioBroker/DashUI/CCU.IO Leute) in meine SmartHome Lösung reingesteckt haben!
Viele Grüße,
Heiko
Hallo,
hab den ioBroker an Fhem versucht anzubinden.
Die Werte konnte ich alle auslesen, allerdings ist bei der Instanz im IObroker
die Fehlermeldung not connected.
Kann mir da jemand weiterhelfen
Gruß
rosenedi
Hallo wieder,
hat sich erledigt. Hab die IP-Adresse falsch im IOBroker angelegt.
Es muß der Localhost 127.0.0.1 sein, da ja der IOBroker und FHEM auf dem gleichen Raspberry laufen.
Gruß
Hallo, wer hat denn schon Erfahrungen mit der Cloud von ioBroker ? Welche Devices lassen sich über das FHEM Modul einbinden ? Aktuell kann ich nur Homematic Schalter on/off integrieren, weder Heizungsthermostate noch Intertechno. Wer hat hier schon Erfahrungen ?
Was ist das Ziel ? Amazon Alexa in die Heimautomation zu integrieren.
Gruß Axel
Hallo Bluefox,
habe bei der Einbindung von FHEM in ioBroker das Problem das zwar alle Geräte (und meines erachten sogar viel zu viele) überspiel werden,
Aber diese danach nicht mit Leben gefüllt werden. Im LOG tauchen dafür jede Menge Warnungen auf:
Auszug aus dem LOG:
fhem.0 2017-02-22 02:40:58.750 warn Unknown event "CUL_HM HZ_1G_WZ_SW1 off"
fhem.0 2017-02-22 02:40:58.513 warn Unknown event "CUL_HM HZ_1G_WZ_SW1 set_off"
fhem.0 2017-02-22 02:40:47.009 warn Unknown event "CUL_HM HZ_1G_WZ_SW1 off"
fhem.0 2017-02-22 02:40:46.850 warn Unknown event "CUL_HM HZ_1G_WZ_SW1 set_off"
fhem.0 2017-02-22 02:40:46.847 warn Unknown event "CUL_HM HZ_1G_WZ_SW1 on"
fhem.0 2017-02-22 02:40:46.494 warn Unknown event "CUL_HM HZ_1G_WZ_SW1 set_on"
fhem.0 2017-02-22 02:40:37.193 warn Unknown event "CUL_HM HZ_1G_WZ_SW1 off"
Es können scheinbar die Werte nicht den Geräten zugeordnet werden. Daher findet, bei mir, keine sichtbare Kommunikation der Systeme nach dem ersten Anlegen mehr statt.
Ist Dir das Problem bekannt?
Grüße
Gerd
Guten Abend, ich habe die letzten Tage mitbekommen, das die ioBroker Gruppe eine Anbindung an die aktuellen Wolf Heizungen fertig gestellt haben (über Wolf Schnittstellenmodul ISM8i, Nachfolger der ISM7i). Also war mein Interesse geweckt und ich habe mich gestern Abend das erste mal den ioBroker installiert :)
Mein erster versuch Daten zwischen FHEM und ioBrocker auszutauschen ist dann gestern auch noch gelungen.
Da meine neue Wolf Netzwerkkarte noch im Versand ist habe ich es also mit einem Dummy und einem Notify eine Simulation gebaut um den Signalaustausch zu testen. Hierbei ist es möglich die Daten zu senden und zu empfangen.
Falls jemand also eine Möglichkeit sucht um zwischen FHEM und ioBroker zu kommunizieren sollte sich evtl. die 17 Screenshots anschauen.
Dort habe ich eine Bildbeschreibung erstellt von A bis Z
Wahrscheinlich geht es noch einfacher, aber leider habe ich noch nichts dazu im Internet gefunden / oder evtl. nicht verstanden.
Es gibt ja irgendwie aktuell nur diesen Beitrag und diesen von ioBrocker http://forum.iobroker.net/viewtopic.php?t=2993 (http://forum.iobroker.net/viewtopic.php?t=2993)
Bei denen auf Seite 3 gibt es zwar ein paar Skripte, aber ich weiß noch nicht was ich damit machen müsste bzw. was diese mir bringen.
Falls jemand also sagt, das hättest du anders einfacher haben können, oder das geht auch so und so, dann bin ich für jeden Tipp dankbar.
Diese Variante wird mich definitiv an mein Ziel bringen, aber dumm sterben kann man ja bekanntlich immer :D
Gruß Denis
Hallo Denis,
danke für die viele Arbeit die Du dir gemacht hast.
Ich hoffe, Du hast genau soviel Erfolg wenn du dann deine Heizung steuern willst ;)
Bei mir überspielt er wirklich alles (Im Moment fände ich es besser, wenn er nur Geräte überspielen wurde).
Nur mit der Formatierung der Daten und der Übermittlung gibt es bei mir noch große Probleme.
Allerdings sind es bei mir auch Homematic Geräte
Grüße
Gerd
Hallo zusammen,
habe mich mal etwas mit dem iobroker FHEM Adapter beschäftigt......
Erste Ergebnisse gibt es hier:
http://forum.iobroker.net/viewtopic.php?f=20&t=5387
Gruß
Dirk
Toll dass die Verbindung zwischen Fhem und ioBroker so gut funktioniert.
Es gibt mM noch ein paar kleine Fehler beim Auslesen von FHEM-Daten. zB bei deinem Dummy:
defmod Sonnenaufgang dummy
attr Sonnenaufgang fp_erdgesch 250,10,1,
attr Sonnenaufgang group Wetter
attr Sonnenaufgang icon weather_sun
attr Sonnenaufgang room Wetter
setstate Sonnenaufgang 06:02:14
setstate Sonnenaufgang [b]2018-03-03 01:15:00[/b] state 06:02:14
wird hier nicht die Uhrzeit des Sonnenaufhanges, sondern das Datum+Uhrzeit (oben fett markiert) übertragen.
Aber solche Kleinigkeiten werden sicher bald ausgemerzt.
Hallo Karl,
kann leider nicht so ganz folgen :-(
Habe dummy mit "define Sonnenaufgang dummy" angelegt
Mit "set Sonnenaufgang 06:00:00" habe ich in ioBroker unter Objekte "Sonnenaufgang" genau diesen Wert unter state bekommen.....
Gruß
Lausi
Ja, bei den Objekten sehe ich es auch korrekt. Aber beim Einbinden in vis sieht es aus wie im Bild - irgendetwas mache ich falsch
Übertrag funktioniert also.
Tippe auf falsches Widget....Hast du das Widget Timestamp verwendet?
Versuche mal mit Widget String
Gruß
Lausi
Danke :)
Ja, ich muss noch viel lernen bei ioBroker.