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. [geklärt] prinzipielle Steuerungsfrage

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[geklärt] prinzipielle Steuerungsfrage

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 2 Kommentatoren 376 Aufrufe
  • Ä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.
  • S Offline
    S Offline
    stoffel67
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        stoffel67
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            stoffel67
            schrieb am zuletzt editiert von
            #5

            Ahh, OK

            wieder was gelernt…

            Vielen Dank...

            Mein Adapter: JUNG/GIRA eNet-Adapter

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #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 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

              295

              Online

              32.7k

              Benutzer

              82.3k

              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