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. Blockly
  5. Blockly DP in Alias setzen ohne direkte Wirkung (alarm)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    300

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    600

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Blockly DP in Alias setzen ohne direkte Wirkung (alarm)

Geplant Angeheftet Gesperrt Verschoben Blockly
8 Beiträge 3 Kommentatoren 493 Aufrufe 3 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.
  • A Offline
    A Offline
    astrakid
    schrieb am zuletzt editiert von
    #1

    hi,
    ich habe zigbee-alarme oder -sirenen bekommen. Die funktionieren an sich auch. ich kann Lautstärke, Dauer, und Alarmton (ringtone) einstellen. für "ringtone" sind dabei 32 verschiedene Töne dabei, benannt mit "ringtone 1" bis "ringtone 32".
    damit ich bei einem möglichen umtausch der geräte nicht alles in script und visualisierung anpassen muss, sind die devices auch als alias angelegt.
    ändere ich nun im alias den ringtone, funktioniert alles. ringtone ändert sich auch im entsprechenden Gerät.

    Nun kommt blockly ins Spiel. Das Blockly-Script wird getriggered, sobald die Klingeltaste ausgelöst wird. Script läuft und setzt in den Alias-DPen den ringtone. Im DP sehe ich den geänderten ringtone, auch im Gerät wird der ringtone geändert. aber es ertönt der vorherige ringtone.
    ich habe shcon versucht mit einem timeout zu arbeitne, aber das scheint nicht das problem zu sein.

    hat jemand eine idee, woran das liegen könnte?

    gruß,
    andre

    mcm1957M CodierknechtC 2 Antworten Letzte Antwort
    0
    • A astrakid

      hi,
      ich habe zigbee-alarme oder -sirenen bekommen. Die funktionieren an sich auch. ich kann Lautstärke, Dauer, und Alarmton (ringtone) einstellen. für "ringtone" sind dabei 32 verschiedene Töne dabei, benannt mit "ringtone 1" bis "ringtone 32".
      damit ich bei einem möglichen umtausch der geräte nicht alles in script und visualisierung anpassen muss, sind die devices auch als alias angelegt.
      ändere ich nun im alias den ringtone, funktioniert alles. ringtone ändert sich auch im entsprechenden Gerät.

      Nun kommt blockly ins Spiel. Das Blockly-Script wird getriggered, sobald die Klingeltaste ausgelöst wird. Script läuft und setzt in den Alias-DPen den ringtone. Im DP sehe ich den geänderten ringtone, auch im Gerät wird der ringtone geändert. aber es ertönt der vorherige ringtone.
      ich habe shcon versucht mit einem timeout zu arbeitne, aber das scheint nicht das problem zu sein.

      hat jemand eine idee, woran das liegen könnte?

      gruß,
      andre

      mcm1957M Online
      mcm1957M Online
      mcm1957
      schrieb am zuletzt editiert von
      #2

      @astrakid
      WIE setzt du den neuen Wert?
      Input in ein Gerät muss mit ack=false erfolgen.

      Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
      Support Repositoryverwaltung.

      Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

      LESEN - gute Forenbeitrage

      1 Antwort Letzte Antwort
      0
      • CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #3

        @astrakid
        Das was @mcm1957 sagt. "Steuere" statt "Aktualisiere".

        https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/6

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        A 1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @astrakid
          Das was @mcm1957 sagt. "Steuere" statt "Aktualisiere".

          https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/6

          A Offline
          A Offline
          astrakid
          schrieb am zuletzt editiert von
          #4

          @codierknecht das mache ich dann scheinbar schon korrekt:
          5baffbdc-4075-4373-96d6-b18a40f5023c-image.png

          1 Antwort Letzte Antwort
          0
          • A astrakid

            hi,
            ich habe zigbee-alarme oder -sirenen bekommen. Die funktionieren an sich auch. ich kann Lautstärke, Dauer, und Alarmton (ringtone) einstellen. für "ringtone" sind dabei 32 verschiedene Töne dabei, benannt mit "ringtone 1" bis "ringtone 32".
            damit ich bei einem möglichen umtausch der geräte nicht alles in script und visualisierung anpassen muss, sind die devices auch als alias angelegt.
            ändere ich nun im alias den ringtone, funktioniert alles. ringtone ändert sich auch im entsprechenden Gerät.

            Nun kommt blockly ins Spiel. Das Blockly-Script wird getriggered, sobald die Klingeltaste ausgelöst wird. Script läuft und setzt in den Alias-DPen den ringtone. Im DP sehe ich den geänderten ringtone, auch im Gerät wird der ringtone geändert. aber es ertönt der vorherige ringtone.
            ich habe shcon versucht mit einem timeout zu arbeitne, aber das scheint nicht das problem zu sein.

            hat jemand eine idee, woran das liegen könnte?

            gruß,
            andre

            CodierknechtC Offline
            CodierknechtC Offline
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @astrakid sagte in Blockly DP in Alias setzen ohne direkte Wirkung (alarm):

            für "ringtone" sind dabei 32 verschiedene Töne dabei, benannt mit "ringtone 1" bis "ringtone 32"

            Und was schreibst Du da rein?
            Einen String oder eine Zahl?

            Schau mal in die Objektdaten des Ziel-DP. Gut möglich, dass die "Ringtones" eigentlich Zahlen sind und nur über die internen States zu Strings konvertiert werden.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            A 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @astrakid sagte in Blockly DP in Alias setzen ohne direkte Wirkung (alarm):

              für "ringtone" sind dabei 32 verschiedene Töne dabei, benannt mit "ringtone 1" bis "ringtone 32"

              Und was schreibst Du da rein?
              Einen String oder eine Zahl?

              Schau mal in die Objektdaten des Ziel-DP. Gut möglich, dass die "Ringtones" eigentlich Zahlen sind und nur über die internen States zu Strings konvertiert werden.

              A Offline
              A Offline
              astrakid
              schrieb am zuletzt editiert von astrakid
              #6

              @codierknecht ich schreibe einen string rein, so wie der DP auch definiert ist:

              {
                "type": "state",
                "common": {
                  "name": "ringtone",
                  "type": "string",
                  "states": {
                    "ringtone 1": "ringtone 1",
                    "ringtone 2": "ringtone 2",
                    "ringtone 3": "ringtone 3",
                    "ringtone 4": "ringtone 4",
                    "ringtone 5": "ringtone 5",
                    "ringtone 6": "ringtone 6",
                    "ringtone 7": "ringtone 7",
                    "ringtone 8": "ringtone 8",
                    "ringtone 9": "ringtone 9",
                    "ringtone 10": "ringtone 10",
                    "ringtone 11": "ringtone 11",
                    "ringtone 12": "ringtone 12",
                    "ringtone 13": "ringtone 13",
                    "ringtone 14": "ringtone 14",
                    "ringtone 15": "ringtone 15",
                    "ringtone 16": "ringtone 16",
                    "ringtone 17": "ringtone 17",
                    "ringtone 18": "ringtone 18",
                    "ringtone 19": "ringtone 19",
                    "ringtone 20": "ringtone 20",
                    "ringtone 21": "ringtone 21",
                    "ringtone 22": "ringtone 22",
                    "ringtone 23": "ringtone 23",
                    "ringtone 24": "ringtone 24",
                    "ringtone 25": "ringtone 25",
                    "ringtone 26": "ringtone 26",
                    "ringtone 27": "ringtone 27",
                    "ringtone 28": "ringtone 28",
                    "ringtone 29": "ringtone 29",
                    "ringtone 30": "ringtone 30",
                    "ringtone 31": "ringtone 31",
                    "ringtone 32": "ringtone 32"
                  },
                  "read": true,
                  "write": true,
                  "role": "state"
                },
                "native": {},
                "from": "system.adapter.zigbee.0",
                "user": "system.user.admin",
                "ts": 1729192845103,
                "_id": "zigbee.0.a4c138a9240eb001.ringtone",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
              

              das hier ist der ausschnitt aus dem script:

              on({ id: [].concat(['0_userdata.0.example_bool']).concat(['alias.0.sensors.waterleakage.spuelmaschine.detected']).concat(['alias.0.sensors.waterleakage.trockenboden.detected']), change: 'ne' }, async (obj) => {
                console.warn('script ausgeloest');
                alarm_lautstaerke = 'low';
                alarm_ton = 'ringtone 7';
                alarm_dauer = 2;
                alarm_an = true;
                console.warn(alarm_ton);
                if ((getState('alias.0.sensors.waterleakage.spuelmaschine.detected').val == true) || (getState('alias.0.sensors.waterleakage.trockenboden.detected').val == true) || (getState('0_userdata.0.example_bool').val == true)) {
                  console.info('alarm ausloesen');
                  setState('alias.0.alarm.alarm1.duration' /* duration */, alarm_dauer);
                  console.info(alarm_dauer);
                  setState('alias.0.alarm.alarm1.volume' /* volume */, alarm_lautstaerke);
                  console.info(alarm_lautstaerke);
                  setState('alias.0.alarm.alarm1.ringtone' /* ringtone */, alarm_ton);
                  console.info(alarm_ton);
                  setState('alias.0.alarm.alarm1.alarm' /* alarm */, alarm_an);
                  console.info(alarm_an);
                  console.info(alarm_dauer);
                  console.info(alarm_lautstaerke);
                  console.info(alarm_ton);
                  console.info(alarm_an);
                } else {
                  setState('alias.0.alarm.alarm1.alarm' /* alarm */, false);
                  setState('alias.0.alarm.alarm2.alarm' /* alarm */, false);
                }
              

              das script an sich funktioniert. hab als trigger derzeit noch einen schalter drin, um den test auslösen zu können.

              1 Antwort Letzte Antwort
              0
              • CodierknechtC Offline
                CodierknechtC Offline
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #7

                @astrakid sagte in Blockly DP in Alias setzen ohne direkte Wirkung (alarm):

                aber es ertönt der vorherige ringtone

                Das ist das eigentliche Problem? Sorry - hat ein bisschen gedauert bis der Groschen gefallen ist.

                das hier ist der ausschnitt aus dem script:

                Du machst das per Blockly? Dann hilft das Script nicht wirklich weiter. Besser wäre, das Blockly zu exportieren
                0ea8d4ca-3d1a-4571-9e19-6b83425fc30f-image.png
                und das Ergebnis dann hier zu posten (natürlich in Code-Tags </>, am besten hinter einem Spoiler).
                Das aber immer in Verbindung mit dem Screenshot.
                Grund: Nicht jeder will sich das Blockly importieren, um einen Blich darauf werfen zu können.
                Und das generierte Script im Kopf wieder in Blockly zu wandeln ist auch nicht jedem gegeben.

                Bei Prüfungen bool'scher Werte muss man nicht mit "= Wahr" prüfen. Der Wert selbst ist ja bereits wahr oder falsch.
                https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/8 (Tipp 2)

                Bindestriche in Variablen sind unschön. Die werden zwar intern in Unterstriche gewandelt, ich würde diese Umwandlung aber gleich verhindern. Falls man mal direkt in JS programmiert, könnte man darüber stolpern. Dann wird das nämlich schnell zu einer Subtraktion.

                Aber das nur am Rande.

                Versuch mal, den eigentlichen Alarm erst nach einem kurzen Timeout auszulösen.
                Gut möglich, dass der Alarm bereits ausgelöst wird bevor das Setzen des Ringtone tatsächlich erfolgt ist.
                Vielleicht reicht auch, lediglich die Reihenfolge zu ändern (Ringtone zuerst, Alarm zuletzt).

                72e79426-22eb-45f7-a197-3d8d44e662dc-image.png

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                A 1 Antwort Letzte Antwort
                3
                • CodierknechtC Codierknecht

                  @astrakid sagte in Blockly DP in Alias setzen ohne direkte Wirkung (alarm):

                  aber es ertönt der vorherige ringtone

                  Das ist das eigentliche Problem? Sorry - hat ein bisschen gedauert bis der Groschen gefallen ist.

                  das hier ist der ausschnitt aus dem script:

                  Du machst das per Blockly? Dann hilft das Script nicht wirklich weiter. Besser wäre, das Blockly zu exportieren
                  0ea8d4ca-3d1a-4571-9e19-6b83425fc30f-image.png
                  und das Ergebnis dann hier zu posten (natürlich in Code-Tags </>, am besten hinter einem Spoiler).
                  Das aber immer in Verbindung mit dem Screenshot.
                  Grund: Nicht jeder will sich das Blockly importieren, um einen Blich darauf werfen zu können.
                  Und das generierte Script im Kopf wieder in Blockly zu wandeln ist auch nicht jedem gegeben.

                  Bei Prüfungen bool'scher Werte muss man nicht mit "= Wahr" prüfen. Der Wert selbst ist ja bereits wahr oder falsch.
                  https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/8 (Tipp 2)

                  Bindestriche in Variablen sind unschön. Die werden zwar intern in Unterstriche gewandelt, ich würde diese Umwandlung aber gleich verhindern. Falls man mal direkt in JS programmiert, könnte man darüber stolpern. Dann wird das nämlich schnell zu einer Subtraktion.

                  Aber das nur am Rande.

                  Versuch mal, den eigentlichen Alarm erst nach einem kurzen Timeout auszulösen.
                  Gut möglich, dass der Alarm bereits ausgelöst wird bevor das Setzen des Ringtone tatsächlich erfolgt ist.
                  Vielleicht reicht auch, lediglich die Reihenfolge zu ändern (Ringtone zuerst, Alarm zuletzt).

                  72e79426-22eb-45f7-a197-3d8d44e662dc-image.png

                  A Offline
                  A Offline
                  astrakid
                  schrieb am zuletzt editiert von
                  #8

                  @codierknecht sagte in Blockly DP in Alias setzen ohne direkte Wirkung (alarm):

                  auch, lediglich die Reihenfolge zu ändern (Ringtone zuerst, Alarm

                  oh man, das einfache tauschen der reihenfolge hat gereicht!!! herzlichen dank!!!

                  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

                  861

                  Online

                  32.5k

                  Benutzer

                  81.9k

                  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