Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. PeZi

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    P
    • Profile
    • Following 0
    • Followers 0
    • Topics 12
    • Posts 55
    • Best 6
    • Groups 1

    PeZi

    @PeZi

    Starter

    6
    Reputation
    12
    Profile views
    55
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    PeZi Follow
    Starter

    Best posts made by PeZi

    • RE: Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

      @saarlanduhu
      Um zu verhindern, dass über DHCP neue IP-Adressen zugewiesen werden, kannst Du in der FB die Adresse reservieren.
      Unter Heimnetz/Netzwerk/Netzverbindungen geht Du bei dem betroffenen links auf das Bleistift:
      1.png

      dort dann das Häkchen setzen:
      2.png

      Oben auf der Seite kannst Du auch einen eindeutigen Gerätenamen vergeben:
      3.png

      posted in ioBroker Allgemein
      P
      PeZi
    • RE: Daikin Adapter, Objekte mit der Cloud synchronisieren

      @joergh
      Jetzt hab ich's verstanden
      vielen Dank für Deine Geduld

      posted in Skripten / Logik
      P
      PeZi
    • RE: API-Zugriff (hier: Reolink API)

      @ilovegym
      Der Tipp mit dem Blockly war zielführend, danke dafür 🙂

      posted in JavaScript
      P
      PeZi
    • RE: Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

      @gombersiob
      Die Quelle finde für die Register finde ich nicht mehr. Aber hier sind die Einträge aus meiner Modbus-Instanz zum DTSU666:

      5ce74f1a-aeb2-4c4e-af73-f70ff49950eb-image.png

      Die von Sungrow ausgelieferten DTSU666 haben wohl eine Sungrow-spezifische Firmware, sodass die entsprechenden Register direkt über den Modbus verfügbar sind. Es gibt zum DTSU noch mehr Register, die z.B. die Ströme der einzelnen Phasen anzeigen.

      Näheres dazu hier:
      https://www.photovoltaikforum.com/thread/158136-sungrow-sammelthread-produktmanagement/?postID=2697060#post2697060

      Nur um Missverständnisse zu vermeiden: Nach meinem Verständnis beschreibt der Hausverbrauch die Leistung, die im Haus "verbraucht" wird. Der Wert ist daher immer positiv. Der Hausverbrauch kann mit dem Standardaufbau des Systems nicht direkt gemessen werden (Pfad 4 in der physikalischen Darstellung). Register 13007 könnte einen entsprechend berechneten Wert haben.

      Register 5600 zeigt eindeutig den vorzeichenbehafteten Leistungsfluss vom/zum Netz (Pfad 3)
      Die in meinen System angezeigten Regsiterwerte lassen den Schluss zu, dass Register 5600 eher 13009 mit umgekehrten Vorzeichen entspricht.

      Wenn Register 13009 negativ ist (5600 positiv), entspräche das Strompfad 10, positive Werte von 13009 (5600 negativ) dementsprechend Strompfad 9. Der jeweils andere ist dann natürlich 0.

      Bleiben immer noch die Strompfade 7 und 8 zu klären, für die es ja eine Messung im WR geben müsste...

      Hast Du eine verständliche Erklärung zu den Bits 4 und 7?

      posted in ioBroker Allgemein
      P
      PeZi
    • RE: API-Zugriff (hier: Reolink API)

      Für alle, die vor dem gleichen Problem stehen, hier eine Lösung zur Ermittlung des Tokens:

      'use strict'
      
      // Token für Kamera 3 ermitteln aund speichern
      schedule("*/30 * * * *", async () => {
          httpPost('http://192.168.22.42/api.cgi?cmd=Login', '[{ "cmd":"Login", "param":{ "User":{ "Version": 0, "userName":"YYYYYY", "password":"XXXXXXXX"}}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
              let ergebnis=('' + response.data)
              let position=0;
              let suche = ergebnis.indexOf('"name" : "', position); 
      
      //Hier ist noch zu prüfen, on das Token IMMER genau 15 Zeichen lang ist. Ggf. muss der Filter angepasst werden!
      
              let Token = ergebnis.slice(suche+10, suche + 25);
              setState('0_userdata.0.Token_Kamera3', Token, true);
          });
      });
      
      posted in JavaScript
      P
      PeZi
    • RE: API-Zugriff (hier: Reolink API)

      @oliverio
      danke für den Tipp, habs so umgesetzt.

      Hier mal für alle die ähnliches vorhaben zusätzlich der Code mit dem dann auf Grundlage des ermittelten Tokens die Steuerbefehle abgesetzt werden.
      Auch in dem Code gibt es sicher Optimierungsmöglichkeiten, aber er funktioniert 🙂

      'use strict'
      
      // Token für Kamera 3 ermitteln aund speichern
      schedule("*/30 * * * *", async () => {
          httpPost('http://192.168.22.42/api.cgi?cmd=Login', '[{ "cmd":"Login", "param":{ "User":{ "Version": 0, "userName":"XXX", "password":"YYY"}}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
              let ergebnis = JSON.parse(response.data);
              let Token = ergebnis.find(el=>el.cmd=="Login").value.Token.name
              setState('0_userdata.0.Token_Kamera3', Token, true);
          });
      });
      
      // Kamara Links
      on({id: '0_userdata.0.Kamera3_Links', change: 'gt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Left", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      on({id: '0_userdata.0.Kamera3_Links', change: 'lt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      // Kamara Rechts
      on({id: '0_userdata.0.Kamera3_Rechts', change: 'gt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Right", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      on({id: '0_userdata.0.Kamera3_Rechts', change: 'lt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      // Kamara Auf
      on({id: '0_userdata.0.Kamera3_Auf', change: 'gt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Up", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      on({id: '0_userdata.0.Kamera3_Auf', change: 'lt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      // Kamara Ab
      on({id: '0_userdata.0.Kamera3_Ab', change: 'gt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Down", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      on({id: '0_userdata.0.Kamera3_Ab', change: 'lt'}, function(obj) {
          let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val;
          httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => {
          });
      });   
      
      posted in JavaScript
      P
      PeZi

    Latest posts made by PeZi

    • RE: Daikin Adapter, Objekte mit der Cloud synchronisieren

      @joergh
      Jetzt hab ich's verstanden
      vielen Dank für Deine Geduld

      posted in Skripten / Logik
      P
      PeZi
    • RE: Daikin Adapter, Objekte mit der Cloud synchronisieren

      @joergh
      @paul53
      Danke Euch, mittlerweile funktioniert es. Es lag am "true" bei setState.
      Es funktionieren beide Varianten (ohne und mit "false" als ack-Parameter)

      Die Aktualisierung in die Cloud erfolgt nicht sofort, sondern im Rahmen des Abfragezyklus (in meinem Fall alle 10 Minuten).

      posted in Skripten / Logik
      P
      PeZi
    • RE: Daikin Adapter, Objekte mit der Cloud synchronisieren

      @joergh
      danke, ich sehe es mir mal an.
      Wie ist Deine Einstellung im Adapter bei "Dieselben Werte noch einmal senden?"

      posted in Skripten / Logik
      P
      PeZi
    • RE: Daikin Adapter, Objekte mit der Cloud synchronisieren

      @joergh
      hab es mal mit "false" probiert, gleiches Ergebnis 😞
      Kannst Du mal bitte Dein Blockly einstellen?
      Also einschließlich der Parameter, die Du da übergibst. Ich übergebe derzeit nur Ziffern 0 bis 4

      posted in Skripten / Logik
      P
      PeZi
    • RE: Daikin Adapter, Objekte mit der Cloud synchronisieren

      @joergh
      Was meinst du mit "steuere"? ich mache das mit dem oben gezeigten Script. Ist da ein Fehler drin oder fehlt da ein Parameter?

      posted in Skripten / Logik
      P
      PeZi
    • RE: Daikin Adapter, Objekte mit der Cloud synchronisieren

      @joergh
      Wenn ich mit dem Script den operationMode z.B. auf 2 stelle (cooling), dann wird das auch so in den Objekten angezeigt.
      In der App steht der Modus aber auch nach einer Stunde weiterhin auf "Heizen".
      Im Objekt "lastUpdateReceived" wird aber alle 10 Minuten die Uhrzeit aktualisiert. Eine Synchronisation erfolgt jedoch in keine Richtung. (Objekt "operationMode" steht auf "Kühlen", in der App wird "Heizen" angezeigt)

      posted in Skripten / Logik
      P
      PeZi
    • Daikin Adapter, Objekte mit der Cloud synchronisieren

      Hallo zusammen,
      ich versuche gerade meine Daikin Klimaanlagen zu visualisieren und auch mit einem Script zu steuern.
      Der Adapter läuft, die Steuerung und die Visualisierung funktionieren.
      Allerdings bekomme ich die Änderungen in den Objekten nicht mit der Cloud synchronisiert. Dass ist notwendig, um die Einstellungen auch in der Daikin App auf Handys und Tabletts zu aktualisieren.
      Offenbar muss man im Adapter hier...

      Screenshot 2024-11-24 114157.png

      ... etwas einstellen. Allerdings gibt es da keine Eingabemöglichkeiten 😞

      Gibt es da einen Weg, bzw. was habe ich übersehen?

      Hier mein Script dazu:

      on ({id: '0_userdata.0.Klimaanlage.Betriebsmodus', change: 'any'}, function(obj){
          let modus = getState("0_userdata.0.Klimaanlage.Betriebsmodus").val;
          setState("daikin-cloud.0.zzzzzzzzzzzzzz.climateControl.operationMode", modus, true); //Modus Schlafzimmer
          setState("daikin-cloud.0.yyyyyyyyyyyy.climateControl.operationMode", modus, true); //Modus Wohnzimmer
          setState("daikin-cloud.0.xxxxxx.climateControl.operationMode", modus, true); //Modus Arbeitszimmer
      })
      
      

      Muss man da ggf. noch ein anderes Objekt setzen, damit die Übertragung in die Cloud erfolgt?

      posted in Skripten / Logik
      P
      PeZi
    • RE: Adapter in einem Multihostsystem umziehen

      @homoran
      @arteck
      Danke Euch,
      nach Verschieben der Instanz vom Slave zum Master wurde der Adapter weiterhin nur auf dem Slave angezeigt. Meine Befürchtung war, dass nach Herausnahme des Slaves die Instanz auf dem Master nicht läuft, da dort dann vermutlich einige Komponenten fehlen.
      Nach einem Reboot war der Adapter dann aber auch auf dem Master zu sehen.
      Sobald meine übrigen Vorbereitungen abgeschlossen sind, werde ich den Slave dann außer Betrieb nehmen.

      posted in Installation
      P
      PeZi
    • Adapter in einem Multihostsystem umziehen

      Hallo zusammen,

      ich betreibe derzeit ein Multihostsystem mit einem Master und zwei Slaves. Einen der beiden Slaves möchte ich nun gerne deaktivieren. Auf diesem Slave ist der Reolink Adapter mit zwei Instanzen installiert. Und genau das soll jetzt auf den Master umziehen.
      Für die Instanzen ist das ja einfach zu erledigen indem man im Reiter "Instanzen" den Host einfach umstellt.
      Der Adapter ist dann aber immer noch auf dem Slave installiert.
      Wie kann man nun den Adapter umziehen? Eine weitere Installation des Adapters auf dem Master im Reiter "Adapter" ist nicht möglich 😞

      Gruß
      Peter

      posted in Installation
      P
      PeZi
    • RE: RTSP-Kamera in VIS darstellen

      @martinp
      gepuffert wird bei go2rtc, da der Zeitversatz bei allen Anzeigegeräten gleich ist. Verursacht wird er aber scheinbar durch den Raspi der Anzeige, da dort das Bild der Kamera 1 ständig im Home-Bildschirm angezeigt wird.
      Ich gehe daher davon aus, das die Pufferung "vor" go2rtc stattfindet. Wenn man diesen Puffer ausschalten könnte, würde im Ausgabestream alle paar Sekunden mal ein Bild fehlen, was aber kein Problem darstellt.

      Der Parameter Voodoo sagt mir nichts. Was bewirkt er, wo gehört er hin und gibt es dazu weitere Parameter?

      @wendy2702
      Ja, für den Main Stream verwende ich die volle Auflösung (2560x1920)
      Bei den Reolink Kameras wird bei Reduzierung der Auflösung des Main Streams das Bild rundum auf die gewählte Auflösung geschnitten. Der zweite angebotene Stream (im Reolink Wording "Fluent") hat eine feste Auflösung von 640x480.
      Bei einem Ereignis an einer der Kameras wird deren Bild im Vollbildmodus angezeigt, sodass nur der Main Stream entsprechende Qualität liefert.
      Eine Reduzierung der Auflösung auf die idealerweise benötigten 1920x1080 mittels go2rtc erhöht die Latenz schneller aufgrund der hierfür erforderlichen zusätzlichen Rechenzeit.
      Statt dessen habe ich mit der Frame Rate und der maximalen Bitrate experimentiert, allerdings ohne nennenswerten Erfolg

      Laut htop liegen aber alle relevanten Parameter des Raspis, auf dem go2rtc läuft, im grünen Bereich.

      @bahnuhr
      Den Parameter #media=video nutze ich, da ich kein Audio benötige (soll Rechenzeit sparen)
      Von #udp erhoffe ich mir wegen des verbindungslosen Protokolls eine schnellere Abarbeitung, da verlorene Pakete einfach wegfallen. Die dann ggf. auftretenden Bildstörungen nehme ich in Kauf.

      Danke für Eure Unterstützung

      Peter

      posted in Skripten / Logik
      P
      PeZi
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo