NEWS
[Neuer Adapter] LinkedDevices
-
@bommel_030 sagte:
TR-064, DECT, Telegram
Also befindet sich der Router in der Nähe des RasPi ? Was läuft dann auf dem (geplanten) Master ?
@bommel_030 sagte:
Dann lass ich die kleine Beere eben weiter eigenständig laufen.
Die Daten können auch per MQTT (Broker / Client) ausgetauscht werden.
-
@paul53
Der Master ist ein rock64 neben der Fritzbox in Deutschland. Der Slave steht neben ner Fritzbox in der Schweiz. Also aktuell ist er noch eigenständig ^^.
Sämtliche Kommunikation zwischen Slave und Master muss ja über das Internet erfolgen, und dann ist es egal ob MQTT oder Multihost an mangelnder Verbindung scheitern.
Unter der Voraussetzung Internet ist nicht da wäre der worst case: der Brennkessel fällt aus und ich bekomme das nicht mit.... Allerdings könnte ich der CCU vor Ort einprogrammieren, wenn die Temperatur zu gering ist soll er die Elektroheizung befeuern...
Mir würden dann nur die geloggten Daten fehlen... -
@bommel_030 sagte:
dann ist es egal ob MQTT oder Multihost an mangelnder Verbindung scheitern.
Das ist nicht egal, denn bei MQTT läuft der RasPi in der Schweiz autark weiter, es findet zu der Zeit nur kein Datenaustausch nach Deutschland statt.
-
@paul53 genau...
@bommel_030 das mus eine master - master verbindung sein
der slave rennt ncith weiter ohne den master -
@paul53
Soweit so klar, aber speichert er denn im MQTT Betrieb zwischen und schickt dann die gesammelten Daten nach Deutschland?
Wenn ich die CCU in der Schweiz auf dem Master in Deutschland direkt einbinde bekomme ich während des Internetausfalls natürlich keine Daten. Sobald die Verbindung wieder steht kommen die aktuellen werde wieder rein. Das kann der MQTT Betrieb sicherlich auch. Und zusätzlich noch die Daten während des Ausfalls puffern?
@arteck
Master - Master Verbindung höre bzw. lese ich gerade zum ersten Mal. Vielleicht war ich auch nur zu sehr auf Master - Slave festgenagelt...
Ich hab halt nen Pi in der Schweiz und der soll auch grundsätzlich die Adapter für die Schweiz beherbergen.
Ob das nun als Master-Master oder Master-Slave in Deutschland oder der Schweiz geschieht ist mir egal. Zumindest momentan wo ich das ganze noch nicht vollständig verstanden habe. -
@bommel_030 sagte:
speichert er denn im MQTT Betrieb zwischen und schickt dann die gesammelten Daten nach Deutschland?
Das glaube ich nicht. Satistiken, die von fortlaufenden Daten abhängen, sollten deshalb auf dem RasPi erstellt werden.
@bommel_030 sagte in [Neuer Adapter] LinkedDevices:
Wenn ich die CCU in der Schweiz auf dem Master in Deutschland direkt einbinde bekomme ich während des Internetausfalls natürlich keine Daten. Sobald die Verbindung wieder steht kommen die aktuellen werde wieder rein.
In der Zwischenzeit steht der Slave und alles, was in dieser Zeit passiert, wird nicht registriert.
-
@bommel_030 sagte:
Grundgedanke eigene SQL Instanz, eigene LinkedDevices und eigene Sourceanalytix Instanz.
Eine eigene Sourceanalytix Instanz braucht es nicht, denn es genügt, den absoluten Zählerstand per MQTT zu übertragen. Zeitliche Lücken stören nicht oder nur wenig (wenn sie über Tagesgrenzen gehen).
@bommel_030 sagte in [Neuer Adapter] LinkedDevices:
Master - Master Verbindung höre bzw. lese ich gerade zum ersten Mal.
Das ist der Datenaustausch mittels MQTT oder Simple API (bei wenigen Daten).
-
@paul53
Also ist es am sinnvollsten den kleinen Schweizer selbstständig laufen zu lassen,und alle Daten die ich in Deutschland sehen will per MQTT auf den Master zu schieben.
Urlaub steht vor der Tür, kann ich mich mal ein wenig in MQTT einlesen... Hab den Thread dann glaube ich auch genug mit meinem Multihost missbrauchtAber zum eigentlichen Adapter nochmal.
Ich habe nen Verbrauchszähler der mir die Werte in Wh liefert und bei einem Reboot wieder von Null anfängt.
Also hab ich mir nen Skript gebastelt was die Werte in kWh ändert, die Nullung abfängt und das in einen Datenpunkt schreibt.
Nun hab ich heldenhafterweise den nullenden Datenpunkt in LinkedDevices eingefügt in nicht den eigenen der brav weiterzählt.
Kann ich den LinkeDevices Datenpunkt auf den richtigen umllinken ohne den anderen zu löschen? -
@bommel_030 sagte:
Nun hab ich heldenhafterweise den nullenden Datenpunkt in LinkedDevices eingefügt in nicht den eigenen der brav weiterzählt.
Das ist auch richtig, denn der nullende DP ändert sich bei einem Hardwaretausch. Mittels MQTT (iobroker.mqtt-client) sendest Du nur den eigenen Datenpunkt, der brav weiterzählt.
-
@Scrounger sagte in [Neuer Adapter] LinkedDevices:
Hab jetzt angefangen die Dokumentation für den Adpater zu erstellen. Ich hoffe Sie ist verständlich - ist etwas schwierig die Funktionen zu beschreiben.
https://github.com/Scrounger/ioBroker.linkeddevices
Könnte noch Unterstützung bei der Übersetzung ins Englische benötigen. Falls jemand mit helfen einfach bei mir melden.
Du hast PN
-
@bommel_030 du könntest zb in deiner DB die alten Datenpunkte auf die libkeddevices so umbenennen, mit SQL ist das Recht einfach. Dann hast auch die alte History. Hab ich selbst schon mit meiner MySQL DB gemacht.
Evtl. Kannst du auch mit den alias des SQL Adapters verwenden, hab ich aber noch nicht ausprobiert.
-
@Scrounger
Klingt logisch, hätte man glatt selber drauf kommen können...
Und das wo ich mit SQL doch aufm Kriegsfuss stehe... Wie man aus dem Zeitstempel nen Datum mit Uhrzeit macht hab ich noch nicht verstanden... -
Version 0.3.0 ist jetzt im latest verfügbar.
Es gibt jetzt in der Adapterkonfiguration eine Übersicht über alle verlinkten Objekte. Ihr könnt von hier zu den Einstellungen der einzelnen Objekte abspringen.
Nicht mehr verlinkte Objekte komfortabel über den Objekt-Id-Selector einem Objekt zuweisen (z.B. bei einem Hardwarewechsel). Die Einstellungen werden dann automatisch für die neue Verlinkung übernommen.
Die Dokumentation gibt es jetzt auch auf Englisch, vielen Dank an @FredF für seine Unterstützung.
-
Version 3.2.0 ist jetzt im latest verfügbar.
Neue Funktionen:
- Bei 'string' könnt ihr jetzt prefix und suffix für das verlinkte Objekt definieren
- 'number' readonly können in Dauer umgewandelt werden
- 'number' readonly können in Datum / Zeit umgewandelt werden
Bitte testen
-
@Scrounger
Habe einen String-Datenpunkt-Verlinkung getestet: Der Linked-Datenpunkt behält als Wert den Default-Wert (common.def). Bei Änderung im Linked-DP wird der geänderte Wert an den Original-DP übertragen, der Linked-DP ändert sich aber sofort wieder zurück auf den Default-Wert.Was sicherlich eine sehr nützliche Konvertierung wäre: String ("false"/"true", "0"/"1", "off"/"on") --> boolean.
-
@paul53 sagte in [Neuer Adapter] LinkedDevices:
@Scrounger
Habe einen String-Datenpunkt-Verlinkung getestet: Der Linked-Datenpunkt behält als Wert den Default-Wert (common.def). Bei Änderung im Linked-DP wird der geänderte Wert an den Original-DP übertragen, der Linked-DP ändert sich aber sofort wieder zurück auf den Default-Wert.Kann das leider nicht nachstellen - du verwendest auch sicher die Version 0.3.2?
Bitte poste mal die Raw Daten vom parentObject und linkedObject, dass ich das direkt nachstellen kann. Was steht im log (debug / silly) für diesen Datenpunkt, wenn du den Adapter neustartest? -> bitte auch posten@paul53 sagte in [Neuer Adapter] LinkedDevices:
Was sicherlich eine sehr nützliche Konvertierung wäre: String ("false"/"true", "0"/"1", "off"/"on") --> boolean.
Ok nehm ich in die nächste Version mit auf.
-
@Scrounger sagte:
wenn du den Adapter neustartest?
Nach einem Neustart der Instanz funktioniert es wie erwartet.
@Scrounger sagte in [Neuer Adapter] LinkedDevices:
verwendest auch sicher die Version 0.3.2?
Die Vorgängerversion bietet mir sicherlich keinen Präfix an ? Ich musste allerdings von Github installieren.
-
@Scrounger
Habe einen weiteren String-Datenpunkt erzeugt und verlinked mit dem Ergebnis wie oben beschrieben: Linked-DP behält Default-Wert.
Der zuerst erstellte Datenpunkt funktioniert. Es ist also nach Erstellen einer neuen Verknüpfung erst ein Neustart der Instanz erforderlich, was nicht sein sollte.linkeddevices.0 2019-07-27 15:28:36.753 debug [onStateChange] parentObject state 'meineDP.0.dev1.ch1.on_off2' changed to 'xx' (ack = false) --> set linkedObject state 'linkeddevices.0.Bad.Lampe4.Ein' to 'xx'
wurde nicht wirklich ausgeführt, denn der Zeitstempel von "Lampe4.Ein" ist 14 Minuten älter und der Wert ist "off" (default).
-
@paul53
Wie gesagt ich kann es nicht reproduzieren, bei mir funktioniert es wie es soll.Deshalb benötige ich wie oben beschrieben die Raw Daten beider Objekte und die logs (Mode: silly), direkt nach dem verlinken ohne den Adapter neuzustarten.
Dann einen neustart machen und nochmal die Raw Daten beider Objekte und die logs (Mode: silly) posten.
Ohne diese Infos kann ich nicht weiterhelfen bzw. den bug finden! -
@Scrounger
Log nach Erzeugen des Links:
Parent DP
Linked DP
Log nach Neustart:
Parent DP nach Neustart
Linked DP