ioBroker

~ 0 min
2022-12-04 19:36

Installation:

  • OS: Ubuntu 22 inst.
  • IP konfigurieren
  • CURL installieren: sudo apt install curl
  • NodeJS inst: curl -sLf https://deb.nodesource.com/setup_16.x | sudo -E bash -
    sudo apt-get install -y nodejs
  • IOBroker mit Curl installieren: curl -sLf https://iobroker.net/install.sh | bash -
  • IOBroker starten mit http://[ip-adresse]:8081
  • Auge: Discovery Adapter, Netzwerkscan

Aktualisieren:

  • sudo apt-get update && sudo apt-get dist-upgrade
  • iobroker update
  • iobroker upgrade
  • iobroker fix -   -> ioBroker Installationsfixer

ioBroker CLI Kommandos: https://iobroker.readthedocs.io/de/latest/basics/cli.html?highlight=json

Backup bzw. Programm umziehen mit Backitup
• Backitup Adapter auf alter und neuer Installation installieren
• History Datenpfad konfigurieren: /opt/iobroker/iobroker-data/history
• je nach Installation min. ioBroker und History Backup auswählen und auf altem und neuem PC einmal ausführen
• /opt/iobroker/backups/ - aktuellstes Backup auf neuen PC an gleiche Stelle übertragen
• auf neuem PC Backup (lokal) wiederherstellen (dauert eine Weile)
• im Idealfall gleiche IP wie Quellgerät nutzen
• alle Instanzen starten
Der Umzug ist fertig.
• Backup: NAS oder Cloud konfigurieren

Grundsätzliches
• Variablen sind temporär im Speicher. Sie lassen sich nur im selben Script nutzen.
• Datenpunkte liegen im Objektbaum und können übergreifend genutzt werden. Sie bleiben auch beim ioBroker-Neustart erhalten.
  Eigene User-Datenpunkte liegen in bzw. unter "0_userdata/0/".
  Zu Datenpunkten lassen sich Einheit, Min., Max und Steps definieren.
• Datenpunkt JSON: hifreich ist JSON Online-Viewer

Berechnungen mit Variablen in VIS
HTML-Widget: Datenpunkt einer Variable zuweisen, dann rechnen.
(Der Editor zeigt die Ergebnisse nicht an, erst der View.)
{var1:fronius.1.meter.2.PowerReal_P_Sum;var1/1000} kW

Abrunden: {Eigene.0.Binding;floor}
Aufrunden: {Eigene.0.Binding;ceil}
math.Runden mit (2) Nachkommastellen:
{Eigene.0.Binding;round(2)}  oder {wert:Eigene.0.Timer;parseInt(wert).toFixed(2)}

Wenn-Dann Abfrage:
{wert:Eigene.0.Binding; wert > 5 ? "der Wert ist größer als 5":""}

Gesetzt oder leer - Abfrage:
{wert:Eigene.0.Binding; wert ? "gesetzt" : "leer"}

Wahr-Falsch Abfrage:
{wert:Eigene.0.Binding; wert === "true" ? "wahr" : "falsch"}

If-When-Else Abfrage:
{wert:Eigene.0.Binding; wert > 5 ? "der Wert ist größer als 5" : "der Wert ist kleiner als 5"}

If-ElsiIf-Else Abfrage
{wert:Eigene.0.Binding; wert == 5 || wert == 10 ? "der Wert ist 5 oder 10":"der Wert ist keine der beiden Zahlen"}

If-AND-If ELSE Abfrage
{wert:Eigene.0.Binding; wert > 5 && wert < 10 ? "der Wert ist größer als 5 oder kleiner als 10":"der Wert liegt nicht im definierten Bereich"}

Vollständige Liste: https://github.com/ioBroker/ioBroker.vis#bindings-of-objects
Quellen: https://www.machs-smart.de/iobroker-bindings-farben-berechnungen-abfragen/

Arbeiten mit Blockly:

  • Scripte werden sofort 1x beim Script-Start ausgeführt -> Start über Trigger
  • Funktionen können Logikblöcke zusammen fassen
  • steuere schreibt den neuen Wert mit Bestätigt: false
  • aktualisiere schreibt den neuen Wert mit Bestätigt: true
    1. Ein neuer Workflow wird angestoßen, indem ein Datenpunkt mit Bestätigt = false geschrieben wird
    2. Diese Änderung registriert dann ein Adapter, welcher diesen Datenpunkt “überwacht” (subscribe)
    3. Der Adapter macht daraufhin seine Arbeit und
    4. schreibt danach den Datenpunkt erneut(!!!) / bestätigt den Wert mit einem Update Bestätigt: true
  • "anerkannt ist" meint dieses "Bestätigt"-Flag:

  • Trigger mehrfach aufrufen startet ihn auch mehrfach! Stop Trigger in Schleifen nicht vergessen.
  • Adapter reagieren nur auf unbestätigte Änderungen und bestätigen diese.
    Bestätigte Reaktion des Adapters abfragen: Objekt= wurde aktualisiert, anerkannt ist= Update
  • Nicht überwachte eigene Datenpunkte (ohne Adapter) müssen per "Bestätigter Änderung" gesetzt werden.
    Eigene Datenpunkte per Script bestätigen:
    TRIGGER falls Objekt= wurde geändert, anerkannt ist= Befehl, Aktion= Aktualisiere Objekt mit "Wert" mit Verzögerung 1sek.
    Quelle: https://haus-automatisierung.com/software/iobroker/2021/02/02/iobroker-steuere-aktualisiere-bestaetigt.html


(meine) Adapter:

  • Visualisation  (Community Lizenz kostenlos, wird online geprüft)
  • Javascript / Blockly - Scripting
  • History - Historie-Daten (JSON-basiert, Speicherdauer (1 Jahr), Verzeichnis festlegen)
    oder SQL-Protokollierung - (SQL-DB: MySQL, PostgreSQL, MS-SQL oder SQLite3)
    für beliebige Datenpunkte im Objektbaum aktivierbar
  • Flot - zur grafischen Auswertung der History-Daten
  • Fronius Inverter (fronius.0, fronius.1)
  • Maxx! Cube (maxcube.0)
  • Midea und Carrier- Dimstal, Nethome
  • Alexa 2

    Liste aller Adapter: http://download.iobroker.net/list.html
Quellen:

Tests:

  • Adapter: Homebridge Zubehör Manager
  • danach erscheint links im Menue ein neuer Menuepunkt "Homebridge"
  • Homebridge -> midea-air

Test2:
Bei der Siemens Logo8 (S7-Adapter) brauchst du nur bei DB was eintragen.
Du kannst Netzwerk Eingänge und Ausgänge in dein Logo-Programm hinzufügen. Die Adresse die du da einstellst musst du bei den DB eintragen
z.b. Netzwerk Eingang 0.0 --> DB0.0 Typ: bool
usw.

Du kannst auch Ausgänge lesen
Q0 --> db1065.0
Q1 --> db1065.1
Typ: bool

Eingänge
E0 --> db1025.0
E1 --> db1025.1
Typ: bool

Analogwerte schreiben und lesen geht auch.

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.