NEWS
FHEM Adapter
-
Zur Info:
Node-red in Verbindung mit FHEM Adapter.
Fehlermeldung "state does not exist" bei Verwendung PossibleSets wie zB. on-for-timer
https://forum.iobroker.net/topic/21080/node-red-state-does-not-exist-in-iobroker -
Aufruf zum Test FHEM Adapter in Zukunft hier:
https://forum.iobroker.net/topic/21551Danke und Gruß
LausiD -
Hallo,
ich habe ein Problem mit der Synchronisation von iobroker nach fhem und komme mit dem Fehlerbild absolut nicht klar...
Vorgehensweise:Ich lege in fhem ein dummy Device an und packe es in den Raum ioBroker:
define V_Test dummy
attr V_Test room ioBrokerDevice ist in iobroker zu sehen. Ich füge ich ein Reading hinzu:
attr V_Test readingList test1
setreading V_Test test1 123Variable ist in iobroker angelegt (fhem.0.V_Test.test1), Wert "123" ist zugewiesen.
Mit iobroker mache ich jetzt ein
iobroker state set fhem.0.V_Test.test1 halloKlappt! Sowohl in iobroker als auch in fhem hat "test1" jetzt den Wert "hallo".
Jetzt erweitere ich die readingsList in fhem:
attr V_Test readingList test1,test2
setreading V_Test test2 456Alles mapped schön nach iobroker (Variable fhem.0.V_Test.test2 ist angelegt und hat den Wert "456")... aber:
Mache ich jetzt ein
iobroker state set fhem.0.V_Test.test1 hallo2ändert sich der Wert von test1 zwar in iobroker, aber nicht mehr in fhem, dort wird im Device V_Test eine Reading "state" angelegt, das den Wert "test1 hallo" zugewiesen bekommen hat, das Reading "test1" selbst bleibt unverändert. Das gleiche passiert bei Zuweisung eines Wertes nach "test2".
Lösche ich das 2. Reading mit
attr V_Test readingList test1
deletereading V_Test test2klappt die Zuweisung nach test1 wieder wie gewünscht.
Interessanterweise ist in iobroker die Variable "test2" immer noch vorhanden, eine Wert-Zuweisung spiegelt sich in fhem durch setzen des "state" Readings wider:
iobroker state set fhem.0.V_Test.test2 hallo3
in fhem:
state: test2 hallo3Was mache ich falsch? Was fehlt?
-
@Ralf-Aniol
Danke für die ausführliche Beschreibung.
Schau ich mir heute abend mal an.
Welche Version FHEM Adapter hast du?Mal kurz nachgestellt:
Die Readings werden im ioBroker nur mit Leserechte angelegt, hast du Schreibrechte manuell zugefügt?
fhem.0.info.Commands.sendFHEM entspricht der Befehlszeile in FHEM. Hier kannst du direkt 'setreading Test Test1 lala" eingebenGruß
LausiD -
Hallo Lausi,
Ach wie schön, wenn man sich mal alles so von der Seele schreiben kann...
... und dazu noch vergebens und unnötigerweise...
Ich bin auf "Error 63" gestoßen: Fehler sitzt 63cm vom Bildschirm entfernt
In fhem heißt es nämlich ganz klar:readingList
Space separated list of readings, which will be set, if the first argument of the set command matches one of themJaja, es hiess schon immer: Space - the final frontier...
und nicht: Komma - the final frontier...
Wenn ich also das Attribut "readingList" richtig setze (Leerzeichen getrennte Liste) läufts auch ganz hervorragend (kaum macht man's richtig...)
Sorry für die langen Posts... -
@Ralf-Aniol
Kein Problem
Habe auch dazu gelernt...das Attribut readingList bei dummy kannte ich nicht.
Aber du musst bei Test1 und Test2 im ioBroker trotzdem noch den Objekten Schreibrechte geben,oder?
Wenn du Zeit und Lust hast wäre toll wenn du mal Version 1.2.1 von github testen könntest..
Danke und Gruß
LausiD. -
@LausiD
Nein, muss ich nicht, ich kann auch so die Werte von iobroker nach fhem spiegeln (?)
1.2.1 hab ich gerade installiert, werde berichten, falls mir was auffälltGrüße
Ralf -
Nabend zusammen,
habe mal eine kurze Doku zum Thema "Auswahl Device(s) aus FHEM zur Synchronisation in ioBroker" erstellt.
https://github.com/iobroker-community-adapters/ioBroker.fhem/blob/master/docs/de/SynchroFHEMconfig.mdLob, Kritik, Anregungen gerne
Gruß
LausiD -
@LausiD , ich habe ein Problem mit dem automatischen Überschreiben des Objekt-Feldes "Name" im iobroker beim FHEM-Resync.
Ich nutze dieses Feld als State-Bezeichner für die iogo-App. Nach erstmaligem Einlesen der FHEM- Devices habe ich die benötigten "Name"-Felder mit Kurzbezeichnungen überschrieben. Leider wird dieses Feld bei Neu-Synchronisation mit dem Standard-Name aus FHEM wieder überschrieben.
Gibt es eine Möglichkeit das "Name"-Feld nach initialem Import durch den FHEM-Adapter und anschließender manueller Überarbeitung für folgende FHEM-Syncs zu sperren bzw. dieses im FHEM-Adapter für die bereits initiierten Devices einzustellen ? Aus der Doku im GIT konnte ich diese Option für mich noch nicht herauslesen, ich hoffe ich habe etwas übersehen.
Schön wäre z.B. ein config-Schalter, der das Überschreiben eines initial durch den FHEM-Adapter belegten "Name"-Feldes global für sämtliche Devices bei einem ReSync verhindert. Vielen Dank schon jetzt für Deine Unterstützung ! -
@ok1
Dein Vorschlag wäre natürlich umzusetzen und eventuell noch eine sinnvolle Erweiterung....Danke dafür
Wenn ich dich richtig verstanden habe geht es um den Inhalt vom Name eines Objekts. Der Name entspricht dem Attribut alias aus FHEM. Hat ein Device noch kein Attribut alias wird es automatisch mit dem Name vom Device angelegt.
Name=Attribut alias
Du kannst das Attribut alias jederzeit in FHEM ändern oder auch im ioBroker unter dem jeweiligen Objekt unter Attributes/alias.
Hat auch den Vorteil deine gewünschte Bezeichnung für Name Objekt ist einheitlich unter FHEM und ioBroker.
Ein Versuch wäre es wertNachtrag: Geht natürlich nur für Objekt als Typ:channel, Reicht dir vermutlich nicht,oder? Du möchtest die Namen für Typ: state ändern?
Gruß
LausiD -
@LausiD , ja genau. Der Name des State dient der iogo-App zur Anzeige der Datenpunktbezeichnung in der App. Hier ein Beispiel:
"Bad-IST-Temperatur" habe ich nach Einlesen aller Devices via Deines prima funktionierenden FHEM-Adapters (vielen Dank dafür !) manuell geändert und wird in der App angezeigt. Beim erneuten Sync durch den FHEM-Adapter wird der Name leider überschrieben und dann steht dort wieder das FHEM-Attribut "Thermostat_Bad_Clima measured-temp". Im Prinzip müsste im FHEM-Adapter beim Sync nur überprüft werden, ob das Feld "Name" bereits mit einem String belegt ist. Falls ja, dann nicht überschreiben. Vielleicht ist der Änderungsaufwand nur minimal, würde aber mir und den iogo-App-Nutzern sehr weiterhelfen ! Vielen Dank !
-
@ok1
Danke für das Beispiel.....jetzt habe ich es glaub verstanden
Schau ich heute Abend mal was sich machen lässt.
Welche Version FHEM Adapter hast du jetzt im Einsatz?Gruß
LausiD -
@LausiD , ich habe die aktuelle 1.2.0 im Einsatz. Grüsse und nochmals vielen Dank, ok1
-
@ok1
So sollte mit Update auf 1.2.1 über github flutschen
Neu unter fhem.x.info.Configurations:
autoName=false kein Überschreiben Name bei resyncWo ich gerade dabei war:
autoType=false kein Überschreiben type bei resync
autoStates=false kein Überschreiben states bei resync
autoRest=false kein Überschreiben min,max,unit, read,write bei resyncGeändert:
autoRole=false nur noch kein Überschreiben role bei resyncGabe es schon:
autoFunction=false kein Überschreiben function bei resyncViel Spaß beim ausführlichen Testen und Gruß
LausiD -
@LausiD , Ergebnis des Schnelltests für das "Name"-Feld - es flutscht !
Meine Änderung nach Installation des 1.2.1-Updates im "Name"-Feld des Objekts hat den mehrfachen Restart des FHEM-Adapters überlebt.Da ich die nächsten Tage noch einige neue HM-Devices über den FHEM-Adapter einbinde kann ich die Erweiterung dann auch noch einmal bzgl. der weiteren Felder ausführlicher testen.
Viele Grüße bis hierin, ok1
-
Zur Info:
https://forum.iobroker.net/topic/22437/keine-aktuellen-daten-von-fhem
Kein Sync durch Attribut event-change-reading -
hmm kann von fhem nichts in iobroker steuern
Wollte im room ioB_System bei fhem.0.send2ioB
folgendes machen
yeelight-2.0.wohnzimmerlampe.control.power falseauch set fhem.0.send2ioB yeelight-2.0.wohnzimmerlampe.control.power false
geht nicht ..
iob log taucht auch nichts auf hmmmOptimal wäre ein eigenes Gerät welches in iob ist un fhem als dummy zu bekommen. Damit ich per set MEINDUMMY ON etwas in iob schalten kann
-
@ChrisXY
Welche Version hat FHEM Adapter?
Mit fhem.0.info.Commands.createSwitch "Name Raum" kannst du einen dummy als Schalter anlegen.
Komisch...bei mir funktioniert fhem.0.send2ioB einwandfrei
Gruß
LausiD -
@LausiD 1.2.0 Es tut sich einfach nichts aber ich teste es morgen nochmal mit einem anderen Gerät
-
@ChrisXY
Mit 1.2.0 kann es Probleme gegeben haben
Und fhem.x.info.Commands.createSwitch gab es auch noch nicht.
Versuche es doch mal mit Version 1.2.1 von github
Gruß
LausiD