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. Einsteigerfragen
  4. Einbindung von Geräten
  5. Aktoren vom Lightmanager Air schalten - Tipp gesucht

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Aktoren vom Lightmanager Air schalten - Tipp gesucht

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
7 Beiträge 3 Kommentatoren 466 Aufrufe 4 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.
  • rtwlR Online
    rtwlR Online
    rtwl
    schrieb am zuletzt editiert von
    #1

    Ich verwende einen Lightmanager Air von jbmedia. Um die Geräte dort zu schalten, kann ich einen HTTP Befehl absetzen, pro Gerät sind es (mindestens) 3 unterschiedliche HTTP Befehle (on/off/toggle). Die IP-Adresse ist immer die selbe, die Daten nach der IP unterscheiden dann zwischen den Geräten sowie zwischen on/off/toggle. Bei aktuell 50 Geräten sind das 150 unterschiedliche HTTP Befehle.
    Auch gibt es dort sogenannte "Marker" welche mit den true/false States im ioBroker verglichen werden können. Diese kann ich schon erfolgreich mit einem blockly Script auslesen und ich ioBroker taugliche true/false Werte schreiben. Das heißt ich hab den aktuellen on/off Status meiner Aktoren.

    Nun zum eigentlichen Problem bei welchem ich einen Lösungsansatz suche:
    Ich möchte per VIS diese Aktoren schalten und die Zustände jeweils korrekt anzeigen lassen.

    Meine Idee war folgende aber ich schaff es nicht diese Umzusetzen:
    Ich würde gerne einen Schalter in der VIS integrieren, welcher mir Anhand der via Blockly aktualisierten true/false states den Status anzeigt.
    Bei Klick auf den Schalter soll dann aber nicht nur dieser Datenpunkt geändert werden, sondern beim Ausschalten sowie Einschalten jeweils ein unterschiedlicher HTTP Befehl abgesetzt werden, um die Aktoren zu schalten.

    Was ich versucht hab ist anhand der true/false Objekte (welche ja alle 3 Sek aktualisiert werden) via Blockly Skript zu triggern und jeweils den korrekten HTTP Befehl abzuschicken. Hat nicht funktioniert, da die Lampe alle 3 Sek an/aus geschalten wird. Da war zwar sicher noch irgendwo ein Fehler drinn, aber das ist auch nicht die beste Lösung, da ich dann für alle 50 Geräte ein Skript erstellen müsste, was einen erheblichen Aufwand bedeutet, wenn da Geräte hinzu kommen oder welche aussortiert werden.

    Diese 150 Datenpunkte welche für die HTTP Befehle benötigt werden sind in einer XML gespeichert, und können sicher irgendwie mit einem Skript (mit eurer Hilfe) in einem Objektbaum importiert werden. (Aber dazu kommt dann die Frage, wenn ich soweit bin.)
    Das würde aber (laut meinem aktuellen Wissensstand) nur dann Sinn machen, wenn ich zusätzliche Daten des VIS-Schalters an das Blockly Übergeben kann, um nach dem korrekten Datenpunkt des benötigten HTTP Befehls zu "suchen".

    Viel Text, aber so könnt ihr mir, einem blutjungen Anfänger, hoffentlich besser helfen.
    Danke schonmal

    -Peter

    AsgothianA netzkeksN 2 Antworten Letzte Antwort
    0
    • rtwlR rtwl

      Ich verwende einen Lightmanager Air von jbmedia. Um die Geräte dort zu schalten, kann ich einen HTTP Befehl absetzen, pro Gerät sind es (mindestens) 3 unterschiedliche HTTP Befehle (on/off/toggle). Die IP-Adresse ist immer die selbe, die Daten nach der IP unterscheiden dann zwischen den Geräten sowie zwischen on/off/toggle. Bei aktuell 50 Geräten sind das 150 unterschiedliche HTTP Befehle.
      Auch gibt es dort sogenannte "Marker" welche mit den true/false States im ioBroker verglichen werden können. Diese kann ich schon erfolgreich mit einem blockly Script auslesen und ich ioBroker taugliche true/false Werte schreiben. Das heißt ich hab den aktuellen on/off Status meiner Aktoren.

      Nun zum eigentlichen Problem bei welchem ich einen Lösungsansatz suche:
      Ich möchte per VIS diese Aktoren schalten und die Zustände jeweils korrekt anzeigen lassen.

      Meine Idee war folgende aber ich schaff es nicht diese Umzusetzen:
      Ich würde gerne einen Schalter in der VIS integrieren, welcher mir Anhand der via Blockly aktualisierten true/false states den Status anzeigt.
      Bei Klick auf den Schalter soll dann aber nicht nur dieser Datenpunkt geändert werden, sondern beim Ausschalten sowie Einschalten jeweils ein unterschiedlicher HTTP Befehl abgesetzt werden, um die Aktoren zu schalten.

      Was ich versucht hab ist anhand der true/false Objekte (welche ja alle 3 Sek aktualisiert werden) via Blockly Skript zu triggern und jeweils den korrekten HTTP Befehl abzuschicken. Hat nicht funktioniert, da die Lampe alle 3 Sek an/aus geschalten wird. Da war zwar sicher noch irgendwo ein Fehler drinn, aber das ist auch nicht die beste Lösung, da ich dann für alle 50 Geräte ein Skript erstellen müsste, was einen erheblichen Aufwand bedeutet, wenn da Geräte hinzu kommen oder welche aussortiert werden.

      Diese 150 Datenpunkte welche für die HTTP Befehle benötigt werden sind in einer XML gespeichert, und können sicher irgendwie mit einem Skript (mit eurer Hilfe) in einem Objektbaum importiert werden. (Aber dazu kommt dann die Frage, wenn ich soweit bin.)
      Das würde aber (laut meinem aktuellen Wissensstand) nur dann Sinn machen, wenn ich zusätzliche Daten des VIS-Schalters an das Blockly Übergeben kann, um nach dem korrekten Datenpunkt des benötigten HTTP Befehls zu "suchen".

      Viel Text, aber so könnt ihr mir, einem blutjungen Anfänger, hoffentlich besser helfen.
      Danke schonmal

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #2

      @rtwl sagte in Aktoren vom Lightmanager Air schalten - Tipp gesucht:

      Was ich versucht hab ist anhand der true/false Objekte (welche ja alle 3 Sek aktualisiert werden) via Blockly Skript zu triggern und jeweils den korrekten HTTP Befehl abzuschicken. Hat nicht funktioniert, da die Lampe alle 3 Sek an/aus geschalten wird. Da war zwar sicher noch irgendwo ein Fehler drinn, aber das ist auch nicht die beste Lösung, da ich dann für alle 50 Geräte ein Skript erstellen müsste, was einen erheblichen Aufwand bedeutet, wenn da Geräte hinzu kommen oder welche aussortiert werden.

      Da gibt es eine elegante Möglichkeit. Diese setzt voraus das aus der ID des Datenpunktes im Blockly der zu sendende HTML Befehl erzeugt werden kann.

      Alternativ kannst du eine Tabelle definieren die für die einzelnen Datenpunkte die HTML Befehle speichert.

      Dann musst du nur noch einen einzigen Trigger bauen, den du entweder mit einem Selektor oder von Hand mit den 50 states füllst.

      Im Trigger kannst du dann die ObjektID und den State des auslösenden Triggers für die Aktion nutzen:

      Screen Shot 2022-02-26 at 12.14.12 .png

      Wichtig: die Bausteine object ID und state value sind der gleiche Baustein (links im Trigger Bereich zu sehen) mit unterschiedlichen Einstellungen. Die beinhalten zum einen den Wert des States der den Trigger ausgelöst hat bzw. die Objekt ID des States der den Trigger ausgelöst hat.

      Was in der Funktion steht hängt davon ab

      • wie deine Datenpunkte aussehen
      • ob man daraus direkt das html machen kann

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      rtwlR 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        @rtwl sagte in Aktoren vom Lightmanager Air schalten - Tipp gesucht:

        Was ich versucht hab ist anhand der true/false Objekte (welche ja alle 3 Sek aktualisiert werden) via Blockly Skript zu triggern und jeweils den korrekten HTTP Befehl abzuschicken. Hat nicht funktioniert, da die Lampe alle 3 Sek an/aus geschalten wird. Da war zwar sicher noch irgendwo ein Fehler drinn, aber das ist auch nicht die beste Lösung, da ich dann für alle 50 Geräte ein Skript erstellen müsste, was einen erheblichen Aufwand bedeutet, wenn da Geräte hinzu kommen oder welche aussortiert werden.

        Da gibt es eine elegante Möglichkeit. Diese setzt voraus das aus der ID des Datenpunktes im Blockly der zu sendende HTML Befehl erzeugt werden kann.

        Alternativ kannst du eine Tabelle definieren die für die einzelnen Datenpunkte die HTML Befehle speichert.

        Dann musst du nur noch einen einzigen Trigger bauen, den du entweder mit einem Selektor oder von Hand mit den 50 states füllst.

        Im Trigger kannst du dann die ObjektID und den State des auslösenden Triggers für die Aktion nutzen:

        Screen Shot 2022-02-26 at 12.14.12 .png

        Wichtig: die Bausteine object ID und state value sind der gleiche Baustein (links im Trigger Bereich zu sehen) mit unterschiedlichen Einstellungen. Die beinhalten zum einen den Wert des States der den Trigger ausgelöst hat bzw. die Objekt ID des States der den Trigger ausgelöst hat.

        Was in der Funktion steht hängt davon ab

        • wie deine Datenpunkte aussehen
        • ob man daraus direkt das html machen kann
        rtwlR Online
        rtwlR Online
        rtwl
        schrieb am zuletzt editiert von
        #3

        @asgothian
        Vielen Dank für deine Antwort.
        Ich bin leider noch nicht so ganz fit mit ioBroker und den ganzen Möglichkeiten.

        Hier mal eine kurze Erklärung was ich alles von dem Lightmanager an Daten bekomme, und was ich aktuell versucht hab. Vielleicht hast du damit eine spezifische Antwort/Lösung für mich.

        .
        Den Status der Lampen bekomme ich in folgendem Format, welche ich mir (wie erwähnt) schon als true/false Werte per Blockly alle 3 Sek importiere:

          {
        "marker state":   "0000010011100000000010000000010000000000000000000000000000011000"
        }
        

        Dieser Status der Lampen wird dann auch direkt im HTTP Request zum schalten der Lampen geändert.

        Die config.xml sieht (in Kurzform) so aus:

        <lightman>
         <zone>
          <zonename>Wohnzimmer</zonename>
           <actuators>
            <actuator>
             <name>Wandregal</name>
             <type>trust</type>
             <steps>0</steps>
             <commandlist>
              <command>
               <name>on</name>
               <param>cmd=on,typ,it,did,0446,aid,6,acmd,1,seq,6,smk,20,1&id=6</param>
              </command>
              <command>
               <name>toggle</name>
               <param>cmd=toggle,typ,it,did,0446,aid,6,acmd,2,seq,6,smk,20,2&id=6</param>
              </command>
              <command>
               <name>off</name>
               <param>cmd=off,typ,it,did,0446,aid,6,acmd,0,seq,6,smk,20,0&id=6</param>
              </command>
             </commandlist>
            </actuator>
            <actuator>
             <name>Schreibtisch</name>
             <type>trust</type>
             <steps>0</steps>
             <commandlist>
              <command>
               <name>on</name>
               <param>cmd=on,typ,it,did,0486,aid,5,acmd,1,seq,6,smk,26,1&id=5</param>
              </command>
              <command>
               <name>toggle</name>
               <param>cmd=toggle,typ,it,did,0486,aid,5,acmd,2,seq,6,smk,26,2&id=5</param>
              </command>
              <command>
               <name>off</name>
               <param>cmd=off,typ,it,did,0486,aid,5,acmd,0,seq,6,smk,26,0&id=5</param>
             </command>
            </commandlist>
           </actuator>
          </actuators>
         </zone>
        </lightman>
        

        Vermutlich kommt bald ein Thread von mir wie ich diese in folgender Form in ioBroker als Objekte importieren/aktualisieren kann. Diese hier hab ich mir als Test manuell angelegt und so denke ich wäre es auch am Besten um die HTTP Befehle "zusammenzubasteln":
        1003da00-e520-485f-9164-9964aa14d4e2-image.png

        Um das ganze via Skript steuern zu können, hab ich mir diese beiden Objekte angelegt um sie via VIS zu ändern und daraus via Blockly den Request zusammenzusetzen:
        58fd006d-cd29-4202-95d3-846beb8f567f-image.png

        Im Blockly nimm ich als Trigger das Objekt "aktor". Was auch super funktioniert.
        3bd960a9-d43d-4fc7-850a-ded4d5819c9c-image.png

        Mein Hauptproblem ist aktuell das Ändern/Aktualisieren der beiden Objekte "aktor" sowie "befehl" via VIS. Leider gibt es einfach kein Widget welches ich nutzen kann um den "aktor" bei Klick identisch zu lassen, den "befehl" aber pro klick auf on/off zu wechseln.
        Auch ist dabei das Problem, dass die States (true/false) nur alle 3 Sek aktualisiert werden (und das ist eventuell schon eine etwas zu kurze Zeitspanne) um den Status "live" pro Klick auf der VIS zu visualisieren. Dazu aber mehr hier in diesem Thread: https://forum.iobroker.net/topic/52843/welches-vis-widget-um-zwei-drei-datenpunkte-zu-setzen?_=1646161662617

        Ja, das ist mein aktueller Stand bei der halb nativen Integration vom Lightmanager in ioBroker.
        Vielleicht hast du, oder jemand anderes noch eine Idee.
        Vielen Dank schonmal

        -Peter

        1 Antwort Letzte Antwort
        0
        • rtwlR rtwl

          Ich verwende einen Lightmanager Air von jbmedia. Um die Geräte dort zu schalten, kann ich einen HTTP Befehl absetzen, pro Gerät sind es (mindestens) 3 unterschiedliche HTTP Befehle (on/off/toggle). Die IP-Adresse ist immer die selbe, die Daten nach der IP unterscheiden dann zwischen den Geräten sowie zwischen on/off/toggle. Bei aktuell 50 Geräten sind das 150 unterschiedliche HTTP Befehle.
          Auch gibt es dort sogenannte "Marker" welche mit den true/false States im ioBroker verglichen werden können. Diese kann ich schon erfolgreich mit einem blockly Script auslesen und ich ioBroker taugliche true/false Werte schreiben. Das heißt ich hab den aktuellen on/off Status meiner Aktoren.

          Nun zum eigentlichen Problem bei welchem ich einen Lösungsansatz suche:
          Ich möchte per VIS diese Aktoren schalten und die Zustände jeweils korrekt anzeigen lassen.

          Meine Idee war folgende aber ich schaff es nicht diese Umzusetzen:
          Ich würde gerne einen Schalter in der VIS integrieren, welcher mir Anhand der via Blockly aktualisierten true/false states den Status anzeigt.
          Bei Klick auf den Schalter soll dann aber nicht nur dieser Datenpunkt geändert werden, sondern beim Ausschalten sowie Einschalten jeweils ein unterschiedlicher HTTP Befehl abgesetzt werden, um die Aktoren zu schalten.

          Was ich versucht hab ist anhand der true/false Objekte (welche ja alle 3 Sek aktualisiert werden) via Blockly Skript zu triggern und jeweils den korrekten HTTP Befehl abzuschicken. Hat nicht funktioniert, da die Lampe alle 3 Sek an/aus geschalten wird. Da war zwar sicher noch irgendwo ein Fehler drinn, aber das ist auch nicht die beste Lösung, da ich dann für alle 50 Geräte ein Skript erstellen müsste, was einen erheblichen Aufwand bedeutet, wenn da Geräte hinzu kommen oder welche aussortiert werden.

          Diese 150 Datenpunkte welche für die HTTP Befehle benötigt werden sind in einer XML gespeichert, und können sicher irgendwie mit einem Skript (mit eurer Hilfe) in einem Objektbaum importiert werden. (Aber dazu kommt dann die Frage, wenn ich soweit bin.)
          Das würde aber (laut meinem aktuellen Wissensstand) nur dann Sinn machen, wenn ich zusätzliche Daten des VIS-Schalters an das Blockly Übergeben kann, um nach dem korrekten Datenpunkt des benötigten HTTP Befehls zu "suchen".

          Viel Text, aber so könnt ihr mir, einem blutjungen Anfänger, hoffentlich besser helfen.
          Danke schonmal

          netzkeksN Offline
          netzkeksN Offline
          netzkeks
          schrieb am zuletzt editiert von
          #4

          @rtwl sagte in Aktoren vom Lightmanager Air schalten - Tipp gesucht:

          Auch gibt es dort sogenannte "Marker" welche mit den true/false States im ioBroker verglichen werden können. Diese kann ich schon erfolgreich mit einem blockly Script auslesen und ich ioBroker taugliche true/false Werte schreiben. Das heißt ich hab den aktuellen on/off Status meiner Aktoren.

          Hallo rtwl,
          ich bin vor ein paar Tagen neu mit iobroker angefangen
          und nutze zu Hause auch den Lightmanager von jbmedia.
          Mein erstes Ziel ist ein "smarten Wecker" mit einem rp4 inkl. Touchdisplay zu bauen.

          Ich bekomme grad das Auslesen der http://192.168.xxx.xxx/params.json nicht hin.
          Könntest du mir evtl. bitte dein blockly zeigen, wie du die einzelnen Marker aus dem String für einen iobroker Datenpunkt separierst?

          Schöne Grüße
          netzkeks

          rtwlR 1 Antwort Letzte Antwort
          0
          • netzkeksN netzkeks

            @rtwl sagte in Aktoren vom Lightmanager Air schalten - Tipp gesucht:

            Auch gibt es dort sogenannte "Marker" welche mit den true/false States im ioBroker verglichen werden können. Diese kann ich schon erfolgreich mit einem blockly Script auslesen und ich ioBroker taugliche true/false Werte schreiben. Das heißt ich hab den aktuellen on/off Status meiner Aktoren.

            Hallo rtwl,
            ich bin vor ein paar Tagen neu mit iobroker angefangen
            und nutze zu Hause auch den Lightmanager von jbmedia.
            Mein erstes Ziel ist ein "smarten Wecker" mit einem rp4 inkl. Touchdisplay zu bauen.

            Ich bekomme grad das Auslesen der http://192.168.xxx.xxx/params.json nicht hin.
            Könntest du mir evtl. bitte dein blockly zeigen, wie du die einzelnen Marker aus dem String für einen iobroker Datenpunkt separierst?

            Schöne Grüße
            netzkeks

            rtwlR Online
            rtwlR Online
            rtwl
            schrieb am zuletzt editiert von
            #5

            @netzkeks

            Hej netzkeks,

            gerne stelle ich dir mein Blockly Skript zur Verfügung.

            Damit das Skript funktioniert, muss man zuerst alle gewünschten Marker als Objekt anlegen und zwar unter 0_userdata.0.Marker
            mit dem Namen marker1 bis marker64 oder eben nur jene die man benötigt. wie in meinem Beispiel nur diese 4.
            Hast du schon einen anderen Pfad für deine Marker, musst du im Blockly den Pfad ändern

            133d36d0-b29c-4ae6-b65d-03656c22c48b-image.png

            So sieht das Blockly aus:
            7fa7805e-0105-4ceb-9532-f88abdaf820b-image.png

            Der Zeitplan ist bei mir auf "jede Minute" gestellt. Du kannst dort das Intervall der Abfrage ändern.

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="6+4HaVi_Jhv-KQRg%l4#">id</variable>
               <variable id="{1GZgD#IK,X|G)R~sqlj">val</variable>
               <variable id="(3^,w6|rT0TMtzCrCQIy">path</variable>
               <variable id=",udE#{`hVIxlSUY{n4O7">all_marker</variable>
               <variable id="pFevTHx![8,Wx,5Es_:q">i</variable>
               <variable id="Lx=u3w$c:bO#(/xDX-LQ">result</variable>
             </variables>
             <block type="procedures_defcustomnoreturn" id="?NMGapp8O`Tm?=p,id.w" x="-1837" y="-938">
               <mutation statements="false">
                 <arg name="id" varid="6+4HaVi_Jhv-KQRg%l4#"></arg>
                 <arg name="val" varid="{1GZgD#IK,X|G)R~sqlj"></arg>
               </mutation>
               <field name="NAME">setExistsState</field>
               <field name="SCRIPT">aWYoZXhpc3RzU3RhdGUoaWQpKSBzZXRTdGF0ZShpZCwgdmFsLCB0cnVlKTs=</field>
               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
             </block>
             <block type="variables_set" id="^8r03$Mqfv1D{c,TJbny" x="-1837" y="-888">
               <field name="VAR" id="(3^,w6|rT0TMtzCrCQIy">path</field>
               <value name="VALUE">
                 <block type="text" id="~603h3F,63}!TmtZ;,J4">
                   <field name="TEXT">0_userdata.0.Marker</field>
                 </block>
               </value>
               <next>
                 <block type="schedule" id="m37@R3u{w9TT,w{wVI;P">
                   <field name="SCHEDULE">* * * * *</field>
                   <statement name="STATEMENT">
                     <block type="request" id="jj1_Ec$3LOf]+57pOXJ1">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                       <field name="WITH_STATEMENT">TRUE</field>
                       <field name="LOG"></field>
                       <value name="URL">
                         <shadow type="text" id="07^=.8Qp@pR3@~+4Qi=x">
                           <field name="TEXT">http://192.168.0.23/params.json</field>
                         </shadow>
                       </value>
                       <statement name="STATEMENT">
                         <block type="variables_set" id="L_4v6=_WsPuHeA#^CM]$">
                           <field name="VAR" id=",udE#{`hVIxlSUY{n4O7">all_marker</field>
                           <value name="VALUE">
                             <block type="get_attr" id="/`B=3g05gWZvoHxwgp,L">
                               <value name="PATH">
                                 <shadow type="text" id="fb];WD1ihAcw?V,VIJJ,">
                                   <field name="TEXT"></field>
                                 </shadow>
                                 <block type="text" id="_/yjx|ME`$.Dx{^x;(EN">
                                   <field name="TEXT">marker state</field>
                                 </block>
                               </value>
                               <value name="OBJECT">
                                 <block type="convert_json2object" id="4I^[p)5Qtp(lrv)pUZ#s">
                                   <value name="VALUE">
                                     <block type="variables_get" id="/i{@,-SO4g?D9A?_{t.L">
                                       <field name="VAR" id="Lx=u3w$c:bO#(/xDX-LQ">result</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="controls_for" id="o,J;4PJDGujyax!dxl,/">
                               <field name="VAR" id="pFevTHx![8,Wx,5Es_:q">i</field>
                               <value name="FROM">
                                 <shadow type="math_number" id="L]VaJ_3n|VS|=7Cx}4Ni">
                                   <field name="NUM">1</field>
                                 </shadow>
                               </value>
                               <value name="TO">
                                 <shadow type="math_number" id="W=bdQv|!C3;Swxy?B^]0">
                                   <field name="NUM">64</field>
                                 </shadow>
                               </value>
                               <value name="BY">
                                 <shadow type="math_number" id="~)bS;El34$sRfcb{Pz`,">
                                   <field name="NUM">1</field>
                                 </shadow>
                               </value>
                               <statement name="DO">
                                 <block type="procedures_callcustomnoreturn" id="*Vztn:6PrAGd0OTeOGnv">
                                   <mutation name="setExistsState">
                                     <arg name="id"></arg>
                                     <arg name="val"></arg>
                                   </mutation>
                                   <value name="ARG0">
                                     <block type="text_join" id="-+I9_sH?fRg]hI@U,kBP" inline="true">
                                       <mutation items="3"></mutation>
                                       <value name="ADD0">
                                         <block type="variables_get" id="][:vB_=AEvwTyEcFM`rl">
                                           <field name="VAR" id="(3^,w6|rT0TMtzCrCQIy">path</field>
                                         </block>
                                       </value>
                                       <value name="ADD1">
                                         <block type="text" id="Y.;;2b9NvzPNniIvSf2Q">
                                           <field name="TEXT">.marker</field>
                                         </block>
                                       </value>
                                       <value name="ADD2">
                                         <block type="variables_get" id="f*Pa_Sq0?,8ITv2iZ$=[">
                                           <field name="VAR" id="pFevTHx![8,Wx,5Es_:q">i</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <value name="ARG1">
                                     <block type="logic_ternary" id="Gsq/@LgZ=J1AToOXo0[4">
                                       <value name="IF">
                                         <block type="logic_compare" id="_$F4jmH@umi3P=!B30zm">
                                           <field name="OP">EQ</field>
                                           <value name="A">
                                             <block type="text_charAt" id="w|Bo,08J1UM8tAks}X=Y">
                                               <mutation at="true"></mutation>
                                               <field name="WHERE">FROM_START</field>
                                               <value name="VALUE">
                                                 <block type="variables_get" id="nUqwx}JYOg[=MLqR6r5b">
                                                   <field name="VAR" id=",udE#{`hVIxlSUY{n4O7">all_marker</field>
                                                 </block>
                                               </value>
                                               <value name="AT">
                                                 <block type="variables_get" id="2%5pMf|g+h#w1C~F0i!Q">
                                                   <field name="VAR" id="pFevTHx![8,Wx,5Es_:q">i</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="text" id="{xEHi|%-yKZ6e#8RH6$p">
                                               <field name="TEXT">1</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="THEN">
                                         <block type="logic_boolean" id="oHnUPgZ2Fu)Tnw_-e~jM">
                                           <field name="BOOL">TRUE</field>
                                         </block>
                                       </value>
                                       <value name="ELSE">
                                         <block type="logic_boolean" id="T3eIY[WMI4H;]$];7vrH">
                                           <field name="BOOL">FALSE</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
            </xml>
            

            -Peter

            netzkeksN 1 Antwort Letzte Antwort
            0
            • rtwlR rtwl

              @netzkeks

              Hej netzkeks,

              gerne stelle ich dir mein Blockly Skript zur Verfügung.

              Damit das Skript funktioniert, muss man zuerst alle gewünschten Marker als Objekt anlegen und zwar unter 0_userdata.0.Marker
              mit dem Namen marker1 bis marker64 oder eben nur jene die man benötigt. wie in meinem Beispiel nur diese 4.
              Hast du schon einen anderen Pfad für deine Marker, musst du im Blockly den Pfad ändern

              133d36d0-b29c-4ae6-b65d-03656c22c48b-image.png

              So sieht das Blockly aus:
              7fa7805e-0105-4ceb-9532-f88abdaf820b-image.png

              Der Zeitplan ist bei mir auf "jede Minute" gestellt. Du kannst dort das Intervall der Abfrage ändern.

              <xml xmlns="https://developers.google.com/blockly/xml">
               <variables>
                 <variable id="6+4HaVi_Jhv-KQRg%l4#">id</variable>
                 <variable id="{1GZgD#IK,X|G)R~sqlj">val</variable>
                 <variable id="(3^,w6|rT0TMtzCrCQIy">path</variable>
                 <variable id=",udE#{`hVIxlSUY{n4O7">all_marker</variable>
                 <variable id="pFevTHx![8,Wx,5Es_:q">i</variable>
                 <variable id="Lx=u3w$c:bO#(/xDX-LQ">result</variable>
               </variables>
               <block type="procedures_defcustomnoreturn" id="?NMGapp8O`Tm?=p,id.w" x="-1837" y="-938">
                 <mutation statements="false">
                   <arg name="id" varid="6+4HaVi_Jhv-KQRg%l4#"></arg>
                   <arg name="val" varid="{1GZgD#IK,X|G)R~sqlj"></arg>
                 </mutation>
                 <field name="NAME">setExistsState</field>
                 <field name="SCRIPT">aWYoZXhpc3RzU3RhdGUoaWQpKSBzZXRTdGF0ZShpZCwgdmFsLCB0cnVlKTs=</field>
                 <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
               </block>
               <block type="variables_set" id="^8r03$Mqfv1D{c,TJbny" x="-1837" y="-888">
                 <field name="VAR" id="(3^,w6|rT0TMtzCrCQIy">path</field>
                 <value name="VALUE">
                   <block type="text" id="~603h3F,63}!TmtZ;,J4">
                     <field name="TEXT">0_userdata.0.Marker</field>
                   </block>
                 </value>
                 <next>
                   <block type="schedule" id="m37@R3u{w9TT,w{wVI;P">
                     <field name="SCHEDULE">* * * * *</field>
                     <statement name="STATEMENT">
                       <block type="request" id="jj1_Ec$3LOf]+57pOXJ1">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                         <field name="WITH_STATEMENT">TRUE</field>
                         <field name="LOG"></field>
                         <value name="URL">
                           <shadow type="text" id="07^=.8Qp@pR3@~+4Qi=x">
                             <field name="TEXT">http://192.168.0.23/params.json</field>
                           </shadow>
                         </value>
                         <statement name="STATEMENT">
                           <block type="variables_set" id="L_4v6=_WsPuHeA#^CM]$">
                             <field name="VAR" id=",udE#{`hVIxlSUY{n4O7">all_marker</field>
                             <value name="VALUE">
                               <block type="get_attr" id="/`B=3g05gWZvoHxwgp,L">
                                 <value name="PATH">
                                   <shadow type="text" id="fb];WD1ihAcw?V,VIJJ,">
                                     <field name="TEXT"></field>
                                   </shadow>
                                   <block type="text" id="_/yjx|ME`$.Dx{^x;(EN">
                                     <field name="TEXT">marker state</field>
                                   </block>
                                 </value>
                                 <value name="OBJECT">
                                   <block type="convert_json2object" id="4I^[p)5Qtp(lrv)pUZ#s">
                                     <value name="VALUE">
                                       <block type="variables_get" id="/i{@,-SO4g?D9A?_{t.L">
                                         <field name="VAR" id="Lx=u3w$c:bO#(/xDX-LQ">result</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="controls_for" id="o,J;4PJDGujyax!dxl,/">
                                 <field name="VAR" id="pFevTHx![8,Wx,5Es_:q">i</field>
                                 <value name="FROM">
                                   <shadow type="math_number" id="L]VaJ_3n|VS|=7Cx}4Ni">
                                     <field name="NUM">1</field>
                                   </shadow>
                                 </value>
                                 <value name="TO">
                                   <shadow type="math_number" id="W=bdQv|!C3;Swxy?B^]0">
                                     <field name="NUM">64</field>
                                   </shadow>
                                 </value>
                                 <value name="BY">
                                   <shadow type="math_number" id="~)bS;El34$sRfcb{Pz`,">
                                     <field name="NUM">1</field>
                                   </shadow>
                                 </value>
                                 <statement name="DO">
                                   <block type="procedures_callcustomnoreturn" id="*Vztn:6PrAGd0OTeOGnv">
                                     <mutation name="setExistsState">
                                       <arg name="id"></arg>
                                       <arg name="val"></arg>
                                     </mutation>
                                     <value name="ARG0">
                                       <block type="text_join" id="-+I9_sH?fRg]hI@U,kBP" inline="true">
                                         <mutation items="3"></mutation>
                                         <value name="ADD0">
                                           <block type="variables_get" id="][:vB_=AEvwTyEcFM`rl">
                                             <field name="VAR" id="(3^,w6|rT0TMtzCrCQIy">path</field>
                                           </block>
                                         </value>
                                         <value name="ADD1">
                                           <block type="text" id="Y.;;2b9NvzPNniIvSf2Q">
                                             <field name="TEXT">.marker</field>
                                           </block>
                                         </value>
                                         <value name="ADD2">
                                           <block type="variables_get" id="f*Pa_Sq0?,8ITv2iZ$=[">
                                             <field name="VAR" id="pFevTHx![8,Wx,5Es_:q">i</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <value name="ARG1">
                                       <block type="logic_ternary" id="Gsq/@LgZ=J1AToOXo0[4">
                                         <value name="IF">
                                           <block type="logic_compare" id="_$F4jmH@umi3P=!B30zm">
                                             <field name="OP">EQ</field>
                                             <value name="A">
                                               <block type="text_charAt" id="w|Bo,08J1UM8tAks}X=Y">
                                                 <mutation at="true"></mutation>
                                                 <field name="WHERE">FROM_START</field>
                                                 <value name="VALUE">
                                                   <block type="variables_get" id="nUqwx}JYOg[=MLqR6r5b">
                                                     <field name="VAR" id=",udE#{`hVIxlSUY{n4O7">all_marker</field>
                                                   </block>
                                                 </value>
                                                 <value name="AT">
                                                   <block type="variables_get" id="2%5pMf|g+h#w1C~F0i!Q">
                                                     <field name="VAR" id="pFevTHx![8,Wx,5Es_:q">i</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <block type="text" id="{xEHi|%-yKZ6e#8RH6$p">
                                                 <field name="TEXT">1</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="THEN">
                                           <block type="logic_boolean" id="oHnUPgZ2Fu)Tnw_-e~jM">
                                             <field name="BOOL">TRUE</field>
                                           </block>
                                         </value>
                                         <value name="ELSE">
                                           <block type="logic_boolean" id="T3eIY[WMI4H;]$];7vrH">
                                             <field name="BOOL">FALSE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </statement>
                       </block>
                     </statement>
                   </block>
                 </next>
               </block>
              </xml>
              

              netzkeksN Offline
              netzkeksN Offline
              netzkeks
              schrieb am zuletzt editiert von
              #6

              @rtwl sagte in Aktoren vom Lightmanager Air schalten - Tipp gesucht:

              gerne stelle ich dir mein Blockly Skript zur Verfügung.

              Super funktioniert!
              Vielen Dank für das Bereitstellen deines Skripts.

              False/true wird bei den unterschiedlichen "markerxx" richtig gesetzt.
              Bei dem "marker" steht bei dir der ganze String, bei mir nur "null"
              objekte.JPG
              Woran liegt das? Ist das wichtig?
              Ist der Zustandstyp (liste) beim "marker" bzw. (logikwert) bei "markerxx" entscheidend?

              rtwlR 1 Antwort Letzte Antwort
              0
              • netzkeksN netzkeks

                @rtwl sagte in Aktoren vom Lightmanager Air schalten - Tipp gesucht:

                gerne stelle ich dir mein Blockly Skript zur Verfügung.

                Super funktioniert!
                Vielen Dank für das Bereitstellen deines Skripts.

                False/true wird bei den unterschiedlichen "markerxx" richtig gesetzt.
                Bei dem "marker" steht bei dir der ganze String, bei mir nur "null"
                objekte.JPG
                Woran liegt das? Ist das wichtig?
                Ist der Zustandstyp (liste) beim "marker" bzw. (logikwert) bei "markerxx" entscheidend?

                rtwlR Online
                rtwlR Online
                rtwl
                schrieb am zuletzt editiert von
                #7

                @netzkeks sagte in Aktoren vom Lightmanager Air schalten - Tipp gesucht:

                Woran liegt das? Ist das wichtig?

                das war noch eine Altlast für das Erstellen des Skript damals. Du kannst ''marker'' löschen. Hab ich auch gerade.

                -Peter

                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

                595

                Online

                32.7k

                Benutzer

                82.4k

                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