Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?

Geplant Angeheftet Gesperrt Verschoben JavaScript
12 Beiträge 4 Kommentatoren 609 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BananaJoeB Online
    BananaJoeB Online
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von BananaJoe
    #1

    Ich teste gerade den MQTT-Client Adapter für eine Verbindung von ioBroker zu einem Mosquitto-MQTT-Broker.
    Im Gegensatz zum anderen MQTT-Broker/Client Adapter kennt dieser ja kein sendTo um den Wert eines Datenpunktes zu senden. Mit dieser Methode habe ich sonst auch neue Topics angelegt.

    Statt dessen aktiviert man ja für den Datenpunkt den MQTT-Client:
    ccc15cee-f57b-4ca2-8617-c0842a7fc16c-image.png
    was man dann auch in den Objektdaten wiederfindet:

    {
      "common": {
        "type": "number",
        "read": true,
        "write": true,
        "name": "Watt-Summe",
        "unit": "W",
        "role": "state",
        "custom": {
          "sql.0": {
            "enabled": true,
            "storageType": "Number",
            "counter": false,
            "aliasId": "",
            "debounceTime": 0,
            "blockTime": 0,
            "changesOnly": true,
            "changesRelogInterval": "0",
            "changesMinDelta": "0",
            "ignoreBelowNumber": "",
            "disableSkippedValueLogging": false,
            "retention": "15811200",
            "customRetentionDuration": 365,
            "maxLength": 0,
            "enableDebugLogs": false,
            "debounce": "1000"
          },
          "mqtt-client.0": {
            "enabled": true,
            "publish": true,
            "pubChangesOnly": true,
            "pubAsObject": false,
            "qos": false,
            "retain": true,
            "subscribe": false,
            "subChangesOnly": false,
            "subAsObject": false,
            "subQos": false,
            "setAck": false,
            "topic": "iobroker/tasmota/EasyMeterHichi/Watt-Summe"
          }
        }
      },
      "native": {
        "type": "number",
        "read": true,
        "write": true,
        "name": "Watt-Summe",
        "unit": "W",
        "role": "state"
      },
      "type": "state",
      "_id": "0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe",
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      },
      "from": "system.adapter.admin.2",
      "user": "system.user.admin",
      "ts": 1743849809832
    }
    

    Ich kann das doch bestimmt auch per Skript aktivieren, oder? Oder deaktivieren?
    Ich vermute mit getObject und setObject, aber muss der MQTT-Client-Adapter da nicht auch irgendwie "bescheid" bekommen?
    Für das Aktivieren der SQL-Aufzeichnung wäre es vermutlich das gleiche in grün?

    Ich habe hier 285 Geräte bei denen ich je 1 bis 3 Datenpunkte publishen und subscriben will, das würde ich gerne einfach mit in meine Skripte einbauen.

    Vielen Dank für einen Schubser in die richtige Richtung.

    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

    BananaJoeB paul53P 2 Antworten Letzte Antwort
    0
    • BananaJoeB BananaJoe

      Ich teste gerade den MQTT-Client Adapter für eine Verbindung von ioBroker zu einem Mosquitto-MQTT-Broker.
      Im Gegensatz zum anderen MQTT-Broker/Client Adapter kennt dieser ja kein sendTo um den Wert eines Datenpunktes zu senden. Mit dieser Methode habe ich sonst auch neue Topics angelegt.

      Statt dessen aktiviert man ja für den Datenpunkt den MQTT-Client:
      ccc15cee-f57b-4ca2-8617-c0842a7fc16c-image.png
      was man dann auch in den Objektdaten wiederfindet:

      {
        "common": {
          "type": "number",
          "read": true,
          "write": true,
          "name": "Watt-Summe",
          "unit": "W",
          "role": "state",
          "custom": {
            "sql.0": {
              "enabled": true,
              "storageType": "Number",
              "counter": false,
              "aliasId": "",
              "debounceTime": 0,
              "blockTime": 0,
              "changesOnly": true,
              "changesRelogInterval": "0",
              "changesMinDelta": "0",
              "ignoreBelowNumber": "",
              "disableSkippedValueLogging": false,
              "retention": "15811200",
              "customRetentionDuration": 365,
              "maxLength": 0,
              "enableDebugLogs": false,
              "debounce": "1000"
            },
            "mqtt-client.0": {
              "enabled": true,
              "publish": true,
              "pubChangesOnly": true,
              "pubAsObject": false,
              "qos": false,
              "retain": true,
              "subscribe": false,
              "subChangesOnly": false,
              "subAsObject": false,
              "subQos": false,
              "setAck": false,
              "topic": "iobroker/tasmota/EasyMeterHichi/Watt-Summe"
            }
          }
        },
        "native": {
          "type": "number",
          "read": true,
          "write": true,
          "name": "Watt-Summe",
          "unit": "W",
          "role": "state"
        },
        "type": "state",
        "_id": "0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        },
        "from": "system.adapter.admin.2",
        "user": "system.user.admin",
        "ts": 1743849809832
      }
      

      Ich kann das doch bestimmt auch per Skript aktivieren, oder? Oder deaktivieren?
      Ich vermute mit getObject und setObject, aber muss der MQTT-Client-Adapter da nicht auch irgendwie "bescheid" bekommen?
      Für das Aktivieren der SQL-Aufzeichnung wäre es vermutlich das gleiche in grün?

      Ich habe hier 285 Geräte bei denen ich je 1 bis 3 Datenpunkte publishen und subscriben will, das würde ich gerne einfach mit in meine Skripte einbauen.

      Vielen Dank für einen Schubser in die richtige Richtung.

      BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #2

      @bananajoe ok, hier habe ich schon mal ein Beispiel gefunden per CLI Influx zu aktivieren: https://forum.iobroker.net/topic/50999/automatisierung-batch-veränderung-von-objekten/5?_=1743851188274

      Und @ralf-2 hat hier ein Problem beim manipulieren des Common-Bereichs:
      https://forum.iobroker.net/topic/78742/probleme-mit-set-object-beim-theobject-common-custom-bereich

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      1 Antwort Letzte Antwort
      0
      • BananaJoeB BananaJoe

        Ich teste gerade den MQTT-Client Adapter für eine Verbindung von ioBroker zu einem Mosquitto-MQTT-Broker.
        Im Gegensatz zum anderen MQTT-Broker/Client Adapter kennt dieser ja kein sendTo um den Wert eines Datenpunktes zu senden. Mit dieser Methode habe ich sonst auch neue Topics angelegt.

        Statt dessen aktiviert man ja für den Datenpunkt den MQTT-Client:
        ccc15cee-f57b-4ca2-8617-c0842a7fc16c-image.png
        was man dann auch in den Objektdaten wiederfindet:

        {
          "common": {
            "type": "number",
            "read": true,
            "write": true,
            "name": "Watt-Summe",
            "unit": "W",
            "role": "state",
            "custom": {
              "sql.0": {
                "enabled": true,
                "storageType": "Number",
                "counter": false,
                "aliasId": "",
                "debounceTime": 0,
                "blockTime": 0,
                "changesOnly": true,
                "changesRelogInterval": "0",
                "changesMinDelta": "0",
                "ignoreBelowNumber": "",
                "disableSkippedValueLogging": false,
                "retention": "15811200",
                "customRetentionDuration": 365,
                "maxLength": 0,
                "enableDebugLogs": false,
                "debounce": "1000"
              },
              "mqtt-client.0": {
                "enabled": true,
                "publish": true,
                "pubChangesOnly": true,
                "pubAsObject": false,
                "qos": false,
                "retain": true,
                "subscribe": false,
                "subChangesOnly": false,
                "subAsObject": false,
                "subQos": false,
                "setAck": false,
                "topic": "iobroker/tasmota/EasyMeterHichi/Watt-Summe"
              }
            }
          },
          "native": {
            "type": "number",
            "read": true,
            "write": true,
            "name": "Watt-Summe",
            "unit": "W",
            "role": "state"
          },
          "type": "state",
          "_id": "0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe",
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          },
          "from": "system.adapter.admin.2",
          "user": "system.user.admin",
          "ts": 1743849809832
        }
        

        Ich kann das doch bestimmt auch per Skript aktivieren, oder? Oder deaktivieren?
        Ich vermute mit getObject und setObject, aber muss der MQTT-Client-Adapter da nicht auch irgendwie "bescheid" bekommen?
        Für das Aktivieren der SQL-Aufzeichnung wäre es vermutlich das gleiche in grün?

        Ich habe hier 285 Geräte bei denen ich je 1 bis 3 Datenpunkte publishen und subscriben will, das würde ich gerne einfach mit in meine Skripte einbauen.

        Vielen Dank für einen Schubser in die richtige Richtung.

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @bananajoe sagte: per Skript aktivieren, oder? Oder deaktivieren?

        const freigabe = true;
        const id = '0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe';
        extendObject(id, {common: {custom: {'sql.0': {enabled: freigabe}}}});
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        BananaJoeB 2 Antworten Letzte Antwort
        0
        • paul53P paul53

          @bananajoe sagte: per Skript aktivieren, oder? Oder deaktivieren?

          const freigabe = true;
          const id = '0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe';
          extendObject(id, {common: {custom: {'sql.0': {enabled: freigabe}}}});
          
          BananaJoeB Online
          BananaJoeB Online
          BananaJoe
          Most Active
          schrieb am zuletzt editiert von
          #4

          @paul53 ok, ich teste mal eben, extendObject war mir auf der Hilfeseite noch nicht aufgefallen ( https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#extendObject )

          Hast du auch was für das deaktivieren parat?

          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

          paul53P 1 Antwort Letzte Antwort
          0
          • BananaJoeB BananaJoe

            @paul53 ok, ich teste mal eben, extendObject war mir auf der Hilfeseite noch nicht aufgefallen ( https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#extendObject )

            Hast du auch was für das deaktivieren parat?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @bananajoe sagte: für das deaktivieren parat?

            const freigabe = false;
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            BananaJoeB 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @bananajoe sagte: für das deaktivieren parat?

              const freigabe = false;
              
              BananaJoeB Online
              BananaJoeB Online
              BananaJoe
              Most Active
              schrieb am zuletzt editiert von
              #6

              @paul53 sagte in Datenpunkt MQTT-Client (oder SQL) per Skript (de)aktivieren?:

              @bananajoe sagte: für das deaktivieren parat?

              const freigabe = false;
              

              [Schlägt sich mit der Hand vor die Stirn]

              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

              1 Antwort Letzte Antwort
              0
              • BananaJoeB Online
                BananaJoeB Online
                BananaJoe
                Most Active
                schrieb am zuletzt editiert von BananaJoe
                #7

                So, hier die komplette Lösung für mein Problem:

                MQTT-Client mit spezifischen Einstellungen für einen Datenpunkt aktivieren:

                // MQTT-Client für Datenpunkt aktivieren
                const mein_Datenpunkt = "0_userdata.0.000-Testen.Zufallszahlen";
                // const mein_Datenpunkt = "0_userdata.0.000-Testen.Waschmaschine-status";
                extendObject(mein_Datenpunkt, 
                    {common: 
                        {custom: 
                            {'mqtt-client.0': 
                                {
                                    enabled: true,
                                    publish: true,
                                    pubChangesOnly: true,
                                    pubAsObject: false,
                                    qos: false,
                                    retain: false,
                                    subscribe: false,
                                    subChangesOnly: false,
                                    subAsObject: false,
                                    subQos: false,
                                    setAck: false,
                                    topic: "iobroker/Testen/Zufallszahlen"
                                }
                            }
                        }
                    }
                );
                

                Die Parameter einfach auflisten, was es da so Einzustellen gibt kann man sich in den Objektdaten ansehen nachdem man das bei einem Datenpunkt von Hand gemacht hat.

                Prüfen ob der MQTT-Client für einen Datenpunkt aktiviert ist:

                // Prüfen ob MQTT-Client für Datenpunkt aktiv ist:
                const mein_Datenpunkt = "0_userdata.0.000-Testen.Zufallszahlen";
                try {
                    var checkMQTTactive_obj = getObject(mein_Datenpunkt);
                    if (checkMQTTactive_obj.common.hasOwnProperty("custom")) {
                        if (checkMQTTactive_obj.common.custom.hasOwnProperty("mqtt-client.0")) {
                            if (checkMQTTactive_obj.common.custom["mqtt-client.0"].enabled == true) {
                                console.warn("MQTT-Client ist aktiv!");
                            } else {
                                console.warn("MQTT-Client ist nicht aktiv");        
                            }
                        }
                    } else {
                        console.warn("MQTT-Client ist nicht aktiv");
                    }
                } 
                catch (e) {
                    // nichts machen
                    console.warn("Catch-Fehler!");
                }
                

                Da musste ich etwas mehr prüfen. custom existiert ggf. gar nicht, und selbst wenn die MQTT-Client Eigenschaften vorhanden sind kann es immer noch deaktiviert sein.

                MQTT-Client für einen Datenpunkt deaktivieren:

                // MQTT-Client für Datenpunkt deaktivieren
                const mein_Datenpunkt = "0_userdata.0.000-Testen.Zufallszahlen";
                extendObject(mein_Datenpunkt, {common: {custom: {'mqtt-client.0': {enabled: false}}}});
                

                Es wird nur deaktiviert!!! Die Objektdaten bleiben am Datenpunkt vorhanden!
                @ralf-2 wollte in seinem Post den ich oben erwähnt habe diese ganz löschen (aber ohne Erfolg).

                So, vielen Dank an @paul53 , jetzt kann ich wieder mein ganzes Skript für die Geräte umschreiben ... Und die Daumen drücken das es mit dem MQTT-Client performt.
                Ich hatte es erst per MQTT-Broker/Client-Modus, der verliert aber die Verbindung zum MQTT-Broker von Home Assistant wenn ich z.B. 60 Werte in einer Minute sende. Zudem musste ich für Gegenreaktionen die entsprechenden Datenpunkte unterhalb von mqtt.1 noch extra Subscriben.
                Das ist dann mit dem MQTT-Client doch eleganter weil ich einfach die schon vorhandenen Datenpunkte verknüpfen kann und so gar keine Extrabehandlung für den MQTT Weg brauche, ich kann ja sogar auswählen ob die Daten bestätigt oder unbestätigt geschrieben werden.

                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                R 1 Antwort Letzte Antwort
                0
                • BananaJoeB BananaJoe

                  So, hier die komplette Lösung für mein Problem:

                  MQTT-Client mit spezifischen Einstellungen für einen Datenpunkt aktivieren:

                  // MQTT-Client für Datenpunkt aktivieren
                  const mein_Datenpunkt = "0_userdata.0.000-Testen.Zufallszahlen";
                  // const mein_Datenpunkt = "0_userdata.0.000-Testen.Waschmaschine-status";
                  extendObject(mein_Datenpunkt, 
                      {common: 
                          {custom: 
                              {'mqtt-client.0': 
                                  {
                                      enabled: true,
                                      publish: true,
                                      pubChangesOnly: true,
                                      pubAsObject: false,
                                      qos: false,
                                      retain: false,
                                      subscribe: false,
                                      subChangesOnly: false,
                                      subAsObject: false,
                                      subQos: false,
                                      setAck: false,
                                      topic: "iobroker/Testen/Zufallszahlen"
                                  }
                              }
                          }
                      }
                  );
                  

                  Die Parameter einfach auflisten, was es da so Einzustellen gibt kann man sich in den Objektdaten ansehen nachdem man das bei einem Datenpunkt von Hand gemacht hat.

                  Prüfen ob der MQTT-Client für einen Datenpunkt aktiviert ist:

                  // Prüfen ob MQTT-Client für Datenpunkt aktiv ist:
                  const mein_Datenpunkt = "0_userdata.0.000-Testen.Zufallszahlen";
                  try {
                      var checkMQTTactive_obj = getObject(mein_Datenpunkt);
                      if (checkMQTTactive_obj.common.hasOwnProperty("custom")) {
                          if (checkMQTTactive_obj.common.custom.hasOwnProperty("mqtt-client.0")) {
                              if (checkMQTTactive_obj.common.custom["mqtt-client.0"].enabled == true) {
                                  console.warn("MQTT-Client ist aktiv!");
                              } else {
                                  console.warn("MQTT-Client ist nicht aktiv");        
                              }
                          }
                      } else {
                          console.warn("MQTT-Client ist nicht aktiv");
                      }
                  } 
                  catch (e) {
                      // nichts machen
                      console.warn("Catch-Fehler!");
                  }
                  

                  Da musste ich etwas mehr prüfen. custom existiert ggf. gar nicht, und selbst wenn die MQTT-Client Eigenschaften vorhanden sind kann es immer noch deaktiviert sein.

                  MQTT-Client für einen Datenpunkt deaktivieren:

                  // MQTT-Client für Datenpunkt deaktivieren
                  const mein_Datenpunkt = "0_userdata.0.000-Testen.Zufallszahlen";
                  extendObject(mein_Datenpunkt, {common: {custom: {'mqtt-client.0': {enabled: false}}}});
                  

                  Es wird nur deaktiviert!!! Die Objektdaten bleiben am Datenpunkt vorhanden!
                  @ralf-2 wollte in seinem Post den ich oben erwähnt habe diese ganz löschen (aber ohne Erfolg).

                  So, vielen Dank an @paul53 , jetzt kann ich wieder mein ganzes Skript für die Geräte umschreiben ... Und die Daumen drücken das es mit dem MQTT-Client performt.
                  Ich hatte es erst per MQTT-Broker/Client-Modus, der verliert aber die Verbindung zum MQTT-Broker von Home Assistant wenn ich z.B. 60 Werte in einer Minute sende. Zudem musste ich für Gegenreaktionen die entsprechenden Datenpunkte unterhalb von mqtt.1 noch extra Subscriben.
                  Das ist dann mit dem MQTT-Client doch eleganter weil ich einfach die schon vorhandenen Datenpunkte verknüpfen kann und so gar keine Extrabehandlung für den MQTT Weg brauche, ich kann ja sogar auswählen ob die Daten bestätigt oder unbestätigt geschrieben werden.

                  R Offline
                  R Offline
                  Ralf 2
                  schrieb am zuletzt editiert von
                  #8

                  @bananajoe sagte in [gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?:

                  @ralf-2 wollte in seinem Post den ich oben erwähnt habe diese ganz löschen (aber ohne Erfolg).

                  Ja, ich wollte die löschen ohne die Adapter erneut zu installieren. Das geht aber nicht.
                  Man muss daran denken vor dem entfernen von Adaptern die Einstellungen aus den Datenpunkte zu entfernen.
                  Meine Lösung war: Adapter installieren, In den Objekten über Expertenmodus -> mit dem Schraubenschlüssel -> alle Einträge zu deaktivieren. Danach den Adapter wieder entfernen.

                  Mit ExtendObject hatte es nicht ohne installiertem Adapter geklappt, aber vielleicht hatte ich es auch falsch gemacht. Wo der Adapter installiert war konnte ich auch den Weg über den Schraubenschlüssel gehen.

                  Hattest du keine Möglichkeit die Objekte entsprechend zu filtern und auch mit dem Schraubenschlüssel zu arbeiten?

                  Gruß Ralf

                  BananaJoeB 1 Antwort Letzte Antwort
                  0
                  • R Ralf 2

                    @bananajoe sagte in [gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?:

                    @ralf-2 wollte in seinem Post den ich oben erwähnt habe diese ganz löschen (aber ohne Erfolg).

                    Ja, ich wollte die löschen ohne die Adapter erneut zu installieren. Das geht aber nicht.
                    Man muss daran denken vor dem entfernen von Adaptern die Einstellungen aus den Datenpunkte zu entfernen.
                    Meine Lösung war: Adapter installieren, In den Objekten über Expertenmodus -> mit dem Schraubenschlüssel -> alle Einträge zu deaktivieren. Danach den Adapter wieder entfernen.

                    Mit ExtendObject hatte es nicht ohne installiertem Adapter geklappt, aber vielleicht hatte ich es auch falsch gemacht. Wo der Adapter installiert war konnte ich auch den Weg über den Schraubenschlüssel gehen.

                    Hattest du keine Möglichkeit die Objekte entsprechend zu filtern und auch mit dem Schraubenschlüssel zu arbeiten?

                    BananaJoeB Online
                    BananaJoeB Online
                    BananaJoe
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @ralf-2 sagte in [gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?:

                    Hattest du keine Möglichkeit die Objekte entsprechend zu filtern und auch mit dem Schraubenschlüssel zu arbeiten?

                    Ich habe hier ein eigenes Skript für alle meine Tasmota-Geräte (siehe Signatur) welches über MQTT arbeitet. Davon läuft pro Gerät eine eigene Instanz.
                    Nun wollte ich diverse Geräte auch in Home Assistant haben und per MQTT rüberschieben (und dort dann als MQTT Sensor, Switch oder Light). In meinen Skript gibt es da einen Boolean ob Home Assistant eingebunden werden soll. Ich wollte halt gerne das ich das eben nicht von Hand machen muss sondern das es je nach Option ein oder ausgeschaltet wird.

                    Klar, ich könnte Home Assistant auch einfach mit auf den vorhandenen MQTT drauf lassen, das hatte ich sogar schon mal gemacht. Hat mein Smarthome dann im ersten Moment lahmgelegt und ich hätte es gerne doch differenzierter.
                    HA nutze ich nur wegen einige Dinge die ich in deren mobilen App angezeigt haben möchte, insbesondere dem Energiemonitor.
                    Ich werde und will weiter ioBroker nutzen, das ist für mich viel flexibler und nutze nur das aus HA was ich da gerade brauchen kann.

                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @bananajoe sagte: per Skript aktivieren, oder? Oder deaktivieren?

                      const freigabe = true;
                      const id = '0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe';
                      extendObject(id, {common: {custom: {'sql.0': {enabled: freigabe}}}});
                      
                      BananaJoeB Online
                      BananaJoeB Online
                      BananaJoe
                      Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @paul53 sagte in [gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?:

                      @bananajoe sagte: per Skript aktivieren, oder? Oder deaktivieren?

                      const freigabe = true;
                      const id = '0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe';
                      extendObject(id, {common: {custom: {'sql.0': {enabled: freigabe}}}});
                      

                      Ich muss dich noch mal bemühen:
                      In deinem Beispiel ist sql.0 ja fest als Text eingetragen.
                      Wie kann ich das durch eine Variable ersetzen? Also das er den Inhalt der Variablen nimmt und nicht den Namen?
                      Bei den Werten selbst funktioniert das ja ( enabled: freigabe ), wie macht man das für die Wertnamen usw. ?

                      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                      T 1 Antwort Letzte Antwort
                      0
                      • BananaJoeB BananaJoe

                        @paul53 sagte in [gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?:

                        @bananajoe sagte: per Skript aktivieren, oder? Oder deaktivieren?

                        const freigabe = true;
                        const id = '0_userdata.0.tasmota.EasyMeterHichi.Watt-Summe';
                        extendObject(id, {common: {custom: {'sql.0': {enabled: freigabe}}}});
                        

                        Ich muss dich noch mal bemühen:
                        In deinem Beispiel ist sql.0 ja fest als Text eingetragen.
                        Wie kann ich das durch eine Variable ersetzen? Also das er den Inhalt der Variablen nimmt und nicht den Namen?
                        Bei den Werten selbst funktioniert das ja ( enabled: freigabe ), wie macht man das für die Wertnamen usw. ?

                        T Nicht stören
                        T Nicht stören
                        ticaki
                        schrieb am zuletzt editiert von
                        #11

                        @bananajoe

                        const test = 'abc';
                        const test2 = {native: {[test]: 'nurTest'}};
                        

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        BananaJoeB 1 Antwort Letzte Antwort
                        0
                        • T ticaki

                          @bananajoe

                          const test = 'abc';
                          const test2 = {native: {[test]: 'nurTest'}};
                          
                          BananaJoeB Online
                          BananaJoeB Online
                          BananaJoe
                          Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @ticaki Perfekt, danke!

                          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          896

                          Online

                          32.4k

                          Benutzer

                          81.5k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe