Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Profile
    • Following 0
    • Followers 0
    • Topics 25
    • Posts 146
    • Best 3
    • Groups 2

    KlausStoertebeker

    @KlausStoertebeker

    3
    Reputation
    30
    Profile views
    146
    Posts
    0
    Followers
    0
    Following
    Joined Last Online
    Location Dresden (Deutschland)

    KlausStoertebeker Follow
    Pro Starter

    Best posts made by KlausStoertebeker

    • Shelly-Geräte mit MQTT-Adapter steuern

      Hallo in's Forum,
      kann mir jemand zeigen, wie ich Shelly-Geräte über den MQTT-Adapter steuern kann?
      Zur Zeit nutze ich den wirklich guten Shelly-Adapter, der aber leider aktuell ein Problem bei der Steuerung der Shelly's per MQTT hat. Denn in unterschiedlichen Abständen sind die Shelly-Geräte über MQTT nicht mehr erreichbar, dann werden sie wieder angemeldet und anschließend die Verbindung durch den MQTT-Client wieder geschlossen.
      Ich möchte nun bei der Fehlersuche helfen und herausfinden, ob ich ähnliche Probleme bekomme, wenn ich den "reinen" MQTT-Adapter nutzte.
      Da ich aber mit MQTT noch keine Berührungspunkte hatte, brauche ich Eure Hilfe, um Fuß zu fassen:
      Wie lese ich beispielsweise Werte eines Sh

      • Selly's aus oder schreibe ich Daten in einen Shelly rein (Ich habe gelesen, dass die Daten über einen JSON-formatierten Datensatz gelesen/geschrieben werden, den ich erst parsen und dann in eigene Datenpunkte schreiben muss oder aus eigenen Datenpunkten lesen muss)?
      • Wie kann ich in Skripten auf geänderte Werte reagieren ("triggern")?
      • Wann muss ich eine id (beispielsweise in einem "value"-Konstrukt) vergeben, welche Bedeutung hat die und was kann/muss ich damit machen?

      Wäre schön, wenn mir jemand helfen könnte - Danke 🙂

      Viele Grüße
      "Klaus"

      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    • RE: [gelöst] png-Bilder im mdw-Widget "Button Toggle"

      @sigi234
      Moin moin und entschuldigung für die lange Wartezeit.
      Ich habe ein wenig mit dem Widget "experimentiert" und herausgefunden, dass man das Widget MANUELL nachbearbeiten muss (könnte auch für andere Widgets des "materialdesign"-Adapters gelten). Interessant ist hier, dass man auch die Icons, die das System zur Verfügung stellt, manuell eintragen muss. Aber Du hast ja schon angemerkt, dass das "materialdesign" noch nicht unterstützt wird. Ich habe Folgendes herausgefunden:
      Wenn man einen "Button Toggle vertical" mit Icon erstellt, wird IMMER das Icon "checkbox-marked" genommen, egal, welches man über den entsprechenden Dialog auswählt. Im exportierten Widget sieht dass dann so aus:

      "image": "checkbox-marked",
      "g_icon": true,
      

      Möchte man jetzt eines von den "eingebauten" Icons verwenden (zum Beispiel das "Power"-Symbol), muss man den Code wie folgt ändern:

      "image": "power",
      "g_icon": true,
      

      Wenn man jetzt ein eigenes png-Bild nutzen möchte, muss man dann den KOMPLETTEN Pfad des png-Bildes (ab der ioBroker-root-Ebene!) angeben, angefgeführt von zwei Punkten. Außerdem muss das Attribut "g_icon" auf "false" gesetzt werden:

      "image": "../pfad/zum/png-Bild.png",
      "g_icon": false,
      

      Ärgerlich ist hier nur, dass die Änderungen nur so lange Bestand haben, bis eine neue Änderung an dem Widget durchgeführt wird.
      Ich habe daher die Seite exportiert, in eine Textdatei gepackt und gespeichert, nachdem ich alle Widgets plaziert hatte, und habe die Änderungen, wie beschrieben, in der Textdatei durchgeführt. Anschließen habe ich dann die komplette Seite importiert (ACHTUNG: vorher ALLE Widgets Löschen, sonst hat man die doppelt.

      posted in Visualisierung
      KlausStoertebeker
      KlausStoertebeker
    • RE: [gelöst] ECharts: Skalieren von Werten

      Hab's selbst gefunden 🙂 :
      Ist zu finden, wenn man den kleonen "Folder" links neben der Datenquelle anklickt. Dann ist im gelben Bereich "Anderre" das Feld "Umrechnungsformel" zu finden.

      posted in Visualisierung
      KlausStoertebeker
      KlausStoertebeker

    Latest posts made by KlausStoertebeker

    • RE: Panasonic Ethera-Klimaanlage über Telnet steuern

      @marc-berg
      Tut's - super. Danke für die Hilfe 🙂

      posted in Node-Red
      KlausStoertebeker
      KlausStoertebeker
    • RE: Panasonic Ethera-Klimaanlage über Telnet steuern

      @marc-berg @mickym
      Vielen Dank für die schnelle Hilfe 🙂 Jetzt kann ich meine Klimaanlage steuern wie vorgesehen. Nur ein kleines Problem gibt es noch, denn in das Objekt "Telnet_Rueckmeldung" wird kein Wert geschrieben, auch wenn in einem normalen Terminal zumindest die Zeichenkette "ACK" ausgegeben wird.
      Aber das ist erstmal nicht wichtig 🙂

      posted in Node-Red
      KlausStoertebeker
      KlausStoertebeker
    • Panasonic Ethera-Klimaanlage über Telnet steuern

      Hallo ins Forum,
      ich möchte meine Panasonic Ethera-Klimaanlage über Telnet steuern, aber über JavaScript ist mir das irgendwie zu kompliziert und einen Telnet-Adapter habe ich nicht gefunden, um das ganze auch mit Blockly realisieren zu können.
      Ich habe aber gesehen, dass es für Node-Red eine Telnet-Client-Erweiterung mit dem Namen "node-red-contrib-telnet-client" gibt.
      Also habe ich Node-Red als Adapter installiert und auch diese Telnet-Erweiterung. Diese Erweiterung habe ich dann in der Node-Red-Instanz als zusätzliches npm-Paket angegeben, und in der Node-Red Flow-Eingabe werden mir dann auch die Telnet-Nodes (?)

      • telnet - read
      • telnet - send
      • telnet - request
      • telnet - echo

      angezeigt. Für die Kommunkation mit meiner Klimaanlage habe ich mir zwei Zeichenketten-Zustände unter "0_userdata" angelegt:

      • Telnet_Befehl
      • Telnet_Rueckmeldung

      In "Telnet_Befehl" möchte ich das Steuerkommando zusammensetzen und dieses an meine Klimaanlage senden, in "Telnet_Rueckmeldung" die Rückmeldung meiner Klimaanlage speichern und auswerten, um zu sehen, ob der Befehl erfolgreich umgesetzt wurde.
      Da ich mit Node-Red keine Erfahrung habe, ich aber schon gesehen habe, dass es hier sehr kompetente Mitglieder gibt und ich gerne sofort eine quick & dirty Lösung hätte (schön kommt später, wenn ich mein Buch zu Node-Red durchgearbeitet habe), bitte ich Euch um Hilfe:
      Kann mir jemand sagen, wie ich

      • den Inhalt meines "Telnet_Befehl" Zustandes auslesen (getriggert durch eine Änderung)
      • mit "telnet - send" an meine Klimaanlage schicken
      • die Anwort meiner Klimaanlage in meinem "Telnet_Rueckmeldung" Zustand

      speichern kann.
      Vielen Dank schonmal für Eure Hilfe
      "Klaus"

      posted in Node-Red
      KlausStoertebeker
      KlausStoertebeker
    • RE: Shelly-Geräte mit MQTT-Adapter steuern

      @mickym

      Habe ich gemacht, und ich erhalte jetzt folgenden Fehler:

      javascript.0  2025-03-23 19:17:00.212  error  Invalid read function for "alias.0.Wohnzimmer_Esstischlampe_Hw-Schalter.Taster": "JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state ? JSON.parse(val).params.events[0].event : "null"" => missing ) after argument list
      
      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    • RE: Shelly-Geräte mit MQTT-Adapter steuern

      @mickym

      Ob die Switches an oder aus sind, siehst Du am Attribut "output": "true" = an...
      Und ich muss Dir recht geben: Der Status der "input:x" wechselt von "null" auf "true", wenn er gedrückt wird - mea culpa! Vermutlich hat mein damaliges Skript nicht reagirt, weil ich nicht auf einen String sondern auf einen Boolean verglichen habe.

      Kann man diese Abfrage auch irgendwie in die Alias-read-Funktion packen? Vielleicht in der folgenden Art:

      JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state === "true" ? JSON.parse(val).params.events[0].event  : "null"
      
      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    • RE: Shelly-Geräte mit MQTT-Adapter steuern

      @mickym

      Bei mir sind die Buttons "null" - siehe hier:

      Bildschirmfoto vom 2025-03-23 18-45-26.png

      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    • RE: JSON mit Blockly auswerten

      @mickym

      Das hat ja auch funktioniert, ich habe auch gerade geantwortet: siehe hier
      Aber ich wollte Dich nicht mit Blockly nerven, und Node Red kann ich (noch) nicht...

      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    • RE: Shelly-Geräte mit MQTT-Adapter steuern

      @mickym

      Hallo mickym,
      ich kann den Status eines "input:x" offenbar nur auswerten, wenn dieser als "Switch" konfiguriert ist. Dann bekomme ich über "JSON.parse(val).state" den aktuellen Schalterstatus ("true" oder "false").
      Ich habe aber meine "input:x" als "Button" konfiguriert und wollte auch hier über die "JSON.parse(val).state" Funktion die Art des Tastendrucks auswerten. Aber offenbar ändert sich der "state" nicht, wenn der "input:x" als Button konfiguriert ist - der ist immer "null". Zumindest habe ich mir mal ein Skript geschieben, dass auf eine Statusänderung getriggert war. Aber das hat nie ausgelöst"...

      JSON.parse(val).params.events[0].component === "input:0" ? JSON.parse(val).params.events[0].event  : ""
      

      funktioniert prima, allerdings bekomme ich nun vom Javascript-Adapter ständig folgende Fehlermeldungen:

      javascript.0   2025-03-23 18:32:00.161  error  Invalid read function for "alias.0.Kueche_Deckenbeleuchtung_Hw-Schalter.Schalter": "JSON.parse(val).params.events[0].component === "input:1" ? JSON.parse(val).params.events[0].event : (null)" => Cannot read properties of undefined (reading '0')
      

      Ich schätze aber mal, dass das damit zusammenhängt, dass nicht bei jedem Event auch die Attribute "component" und "event" enthalten sind, oder? Kann man diese Fehler irgendwie abfangen, indem man die read-Funktion anpasst?

      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    • JSON mit Blockly auswerten

      Hallo in's Forum,
      ich betreibe einen Shelly Plus 2PM-Doppelschalter über MQTT (NICHT mit dem Shelly-Adapter, sondern mit dem MQTT-Adapter), der auch zwei Eingänge hat. Diese Eingänge können als "Switch" oder "Button" konfiguriert werden - ich habe sie als "Button" konfiguriert, damit ich auswerten kann, ob jemand den Taster ein, zwei oder drei Mal gedrückt hat. Diese Information wird im Datenpunkt "events/rpc" (in diesem Fall "mqtt.0.shellyplus2pm-d48afc7dbd1c.events.rpc" als JSON abgelegt und hat folgendes Format:

      {
        "src": "shellyplusi4-c4d8d554856c",
        "dst": "shellyplusi4-c4d8d554856c/events",
        "method": "NotifyEvent",
        "params": {
          "ts": 1742530641.42,
          "events": [
            {
              "component": "input:0",
              "id": 2,
              "event": "single_push",
              "ts": 1742530641.42
            }
          ]
        }
      }
      

      Ich möchte dieses JSON mit einem Blockly-Skript auswerten, und zwar folgendermaßen:
      Zuerst prüfen, ob das Attribut "component" vorhanden ist, um Fehler bei weiteren Abfragen zu vermeiden.
      Wenn "component" vorhanden ist, will ich prüfen ob es den Wert "Input:0" oder "Input:1" hat. Und wenn einer dieser beiden Werte enthalten ist, möchte ich das Attribut "event" auslesen und den ausgelesenen Wert abspeichern.
      "event" kann die Zeichenketten "single_push", "double_push", "triple_push", "btn_down" und "btn_up" annehmen.
      Ich habe mir die folgende Blockly-Lösung ausgedacht:

      Bildschirmfoto vom 2025-03-23 18-14-34.png

      Aber leider funktioniert das nicht, denn offenbar habe ich etwas bei den Attributen oder deren Schreibweise falschgemacht. Denn obwohl das Attribut "params.events[0].component" vorhanden ist, wird die Bedingung "params.events[0].component /= null" nicht erfüllt. (Achtung: "events" ist ein Array, daher [0] als Index).
      Kann mir jemand helfen und mir sagen, was ich an meinem Blockly ändern muss, damit ich die gewünschten Attribute auslesen kann?

      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    • RE: Shelly-Geräte mit MQTT-Adapter steuern

      @mickym
      Moin moin mickym,
      ich brauche nochmal Deine Hilfe. Ich möchte aus folgender JSON-formatierter Zeichenkette folgende Information extrahieren

      {
        "src": "shellyplusi4-c4d8d554856c",
        "dst": "shellyplusi4-c4d8d554856c/events",
        "method": "NotifyEvent",
        "params": {
          "ts": 1742530641.42,
          "events": [
            {
              "component": "input:2",
              "id": 2,
              "event": "single_push",
              "ts": 1742530641.42
            }
          ]
        }
      }
      

      folgende Information extrahieren:
      wenn "events" vorhanden dann wenn "component" = "input:2" enthalten gib den Wert von "event" zurück.
      Wie kann ich das mit dem JSON.parse() und/oder anderen JSON.xxxx machen? Ich möchte das in einen Datenpunkt von einem Alias packen, um den RPC-Event-Datenpunkt eines Shelly auszuwerten.

      Hintergrund ist, dass ich nicht nur feststellen will, ob eine Taste gedrückt wurde (hier Taste an "input:2"), sondern auch, um was für einen Tastendruck es sich gehandelt hat (zum Beispiel "einfach", "zweifach", "dreifach", "lang"...)

      Wäre das dann vielleicht sowas wie

      if(JSON.parse(JSON.parse(val).params.events).component == "input:2") JSON.parse(JSON.parse(val).params.events).event; "";
      
      posted in ioBroker Allgemein
      KlausStoertebeker
      KlausStoertebeker
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo