Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [geklärt] prinzipielle Steuerungsfrage

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    795

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

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

[geklärt] prinzipielle Steuerungsfrage

Scheduled Pinned Locked Moved Skripten / Logik
6 Posts 2 Posters 376 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    stoffel67
    wrote on last edited by
    #1

    Hallo,

    ich hab mir vor längerem mit einem ESP826 und zwei 8-fach Relaiskarten ein kleine Gartensteuerung gebaut.

    Auf dem ESP8266 läuft ein WebServer mit dem ich über eine HTML Seite die Relais ein/aus-schalten kann.

    In der WebSeite ist auch ein automatisches "reload", damit -falls die WebSeite von einem anderen Rechner(Smartphone)

    aufgerufen wird- auch immer der aktuelle Status der Relais angezeigt wird…. funktioniert soweit prima.

    Jetzt möchte ich das Ganze auch zusätzlich über ioBroker steuern, daher die Frage, wie gehe ich hier am geschicktesten vor.

    Javascript ist kein Problem, allerdings ist mir die NODEJS-Logik nicht ganz klar.

    Ich kann per http-request, jederzeit den Status der Relais abfragen, und Datenpunkte damit setzen(z.B: Relais1: an/aus),

    aber wie mache ich das im IOBroker?

    mit "setState" kann ich Datenpunkte setzen,

    mit getState Datenpunkte abfragen...

    mit on({id:'xxxxx'},... kann ich auf Änderungen reagieren,

    wie steuere ich aber sowas jetzt vernünftig, mit je zwei Datenpunkten(SOLL/IST-Zustand) pro Relais?

    Ein script "pollt" alle10 sec den Status der Relais und setzt die Datenpunkte(IST)

    parallel läuft ein weiteres script, das auf Änderungen der Datenpunkte (SOLL) reagiert, und dann entsprechend schaltet,

    ist das die übliche Vorgehensweise oder gibt's was besseres mit IOBroker?

    Mein Adapter: JUNG/GIRA eNet-Adapter

    1 Reply Last reply
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @stoffel67:

      Ich kann per http-request, jederzeit den Status der Relais abfragen, und Datenpunkte damit setzen(z.B: Relais1: an/aus),

      aber wie mache ich das im IOBroker?

      mit "setState" kann ich Datenpunkte setzen, `
      Ganau so: Per Polling (schedule) die Werte aus der Webseite abfragen, und mit setState(id, val, true) den Datenpunkt setzen.
      @stoffel67:

      wie steuere ich aber sowas jetzt vernünftig, mit je zwei Datenpunkten(SOLL/IST-Zustand) pro Relais? `
      Weshalb zwei Datenpunkte pro Relais ?
      @stoffel67:

      Ein script "pollt" alle10 sec den Status der Relais und setzt die Datenpunkte(IST)

      parallel läuft ein weiteres script, das auf Änderungen der Datenpunkte (SOLL) reagiert, und dann entsprechend schaltet, `
      Das kann alles in einem Skript erfolgen, sogar für alle Relais. Prinzip:

      const id1 = '...'; // Datenpunkt-ID für Relais 1
      const id2 = '...'; // Datenpunkt-ID für Relais 2
      const js = 'system.adapter.javascript.' + instance;
      
      on({id: id1, change: 'ne', fromNe: js}, function(dp) {
         // Wert an Webseite für Relais 1 senden
      });
      
      on({id: id2, change: 'ne', fromNe: js}, function(dp) {
         // Wert an Webseite für Relais 2 senden
      });
      
      schedule('*/10 * * * * *', function() {
         // Werte von Webseite holen
         setState(id1, val1, true); // val1 = Wert für Relais 1 von Webseite 
         // usw.
      });
      
      

      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

      1 Reply Last reply
      0
      • S Offline
        S Offline
        stoffel67
        wrote on last edited by
        #3

        So hab' ich mir es auch gedacht, aber ( ich hab's so noch nicht programmiert..)

        wenn ich durch den "schedule" alle 10 sec den Status hole, und mit "setState" setze, produziere ich da nicht eine "Endlosschleife"

        denn mit setState "ändert" sich der Zustand und damit wird der Befehl über "on ({…" an die WebSite erneut gesendet?

        oder habe ich da einen Gedankenfehler?

        Mein Adapter: JUNG/GIRA eNet-Adapter

        1 Reply Last reply
        0
        • paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

          @stoffel67:

          denn mit setState "ändert" sich der Zustand und damit wird der Befehl über "on ({…" an die WebSite erneut gesendet?

          oder habe ich da einen Gedankenfehler? `
          Genau das soll der Triggerzusatz fromNe: js verhindern: Ist die Quelle der Wertänderung die Javascript-Instanz (setState), wird nicht getriggert.

          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

          1 Reply Last reply
          0
          • S Offline
            S Offline
            stoffel67
            wrote on last edited by
            #5

            Ahh, OK

            wieder was gelernt…

            Vielen Dank...

            Mein Adapter: JUNG/GIRA eNet-Adapter

            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

              Dann markiere bitte das Thema im Betreff des ersten Beitrags als [geklärt] oder so ähnlich.

              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

              1 Reply Last reply
              0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              496

              Online

              32.8k

              Users

              82.7k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe