Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. benni27

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    B
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 10
    • Best 0
    • Groups 1

    benni27

    @benni27

    Starter

    0
    Reputation
    5
    Profile views
    10
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    benni27 Follow
    Starter

    Latest posts made by benni27

    • RE: Test Adapter 360 Staubsauger botslab

      @thomas123-0
      @tombox

      Ich habe seit meinem iobroker Umzug auf einen anderen Server das gleiche Problem. Hat alles funktioniert, seit dem Umzug bekomme ich den Adapter nicht mehr zum laufen. Gleiche Meldungen im Log. Keine Anmeldung möglich. Benutzereingaben sind aber korrekt, in der App kann ich mich damit auch anmelden.

      Konnte da schon eine Lösung gefunden werden?

      Liebe Grüsse

      posted in Tester
      B
      benni27
    • Pihole Adapter keine Verbindung

      Hi!
      Ich versuche grade mein Pihole in Iobroker einzubinden, bekomme aber immer folgende Fehlermeldung:

      pi-hole.0
      2023-05-23 14:12:25.969 error Error: connect EHOSTUNREACH 192.168.5.246:80

      Mein pihole läuft auf einem Server als docker container.
      Network Einstellungen sind so eingerichtet, dass das Pihole eine eigene ip hat im Hostnetz. (Über macvlan)
      Das heisst ich rufe meine pihole weboberfläche nicht mit der Ip vom Server plus Port auf, sondern lediglich über die ip des Pihole.
      Einstellungen möchte ich auch so lassen, da ich im bridge bzw host netzwerk den Dns nicht sauber zum laufen bekommen habe. So funktioniert pihole ordentlich.

      Allerdings entnehme ich dem log, dass immer port 80 dahinter gesetzt wird und pihole so nicht erreichbar ist.
      Ich finde in den Adaptereinstellungen nichts, wie ich den Port weglassen kann.
      Api Token ist korrekt eingestellt, ip in den Adaptereinstellungen ist die ip vom pihole, ohne Port.
      Kann mir jemand weiterhelfen?

      Vielen Dank schonmal!

      Liebe Grüsse Benni

      posted in ioBroker Allgemein
      B
      benni27
    • RE: [gelöst] on-funktionen generieren aus einem object

      Vielen Dank für eure Hilfe. Hat mir sehr weitergeholfen. Danke auch für die Erklärungen! Werde in Zukunft primär let/const verwenden! 🙂

      Ich weiss leider nicht wo ich die Frage als gelöst markieren kann? Ist mein erster Forenbeitrag..

      posted in JavaScript
      B
      benni27
    • RE: [gelöst] on-funktionen generieren aus einem object

      @asgothian
      Woow! es funktioniert!
      Super danke!

      hab jetzt den Code genau so wie anfangs gepostet, nur mit const anstatt var. jetzt geht alles.

      an was für kleinigkeiten das immer hängen kann ey.. danke!

      liebe grüße, Benni

      posted in JavaScript
      B
      benni27
    • RE: REAL Werte Modbus einlesen

      @derlangeharzer
      dazu musst du in deinem wago-projekt einen Modbus-Master anlegen, und Variablen erstellen im Projekt, die auf bestimmte Modbus-Adressen gesendet/empfangen werden, je nach Einstellung.

      in IO-Broker muss der Modbusadapter installiert werden, und als slave eingerichtet werden. Dann die korrekten Adressen mit neuen Variablen in den Instanz-Einstellungen einrichten.
      Dann tauchen die Variablen in deiner Objektliste auf.

      Allerdings ist das nicht ganz ohne, über den Adapter die Werte korrekt übermittelt zu bekommen.
      Soweit ich weiß funktioniert Real nicht so einfach. Ich habe die Werte in meinem Wago-Projekt in Integer umgewandelt, und dann in iobroker wieder auf die richtige Kommazahl dividiert.

      Mehr details wären da hilfreich.

      posted in Automatisierung
      B
      benni27
    • RE: [gelöst] on-funktionen generieren aus einem object

      @oliverio
      so ich hab jetzt mal nochmal bisschen rumprobiert.
      ich komme nicht ganz drauf wie du das meinst, kannst du mir evtl ein Beispiel geben?

      ich habe so viel verschiedenes jetzt probiert..
      ich habe dann auch versucht, das nicht über eine for schleife zu lösen, sondern eine einzige On-Funktion, die als trigger das gesamte objekt homeKitobjectAlias. also ungefähr in dem stil:

      on(homeKitobjectAlias, function(obj){
        var origID = obj.id
      ...
      }
      

      hat aber auch nicht funktioniert. je nachdem wie ich meine variablen in der funktion deklariere, kommt entweder ein schwall an undefined meldungen im Log, oder es kommen alle states die ich in der gesamten objectliste stehen hab. Unabhängig von dem Object homeKitobjectAlias. Und dementsprechend auch ein ordentlicher Überlauf im Log..

      hab aber auch viel anderes probiert. Könntest du mir ein kurzes Beispiel geben, dass ich verstehe wie du das meinst konkret?

      Danke schonmal

      posted in JavaScript
      B
      benni27
    • RE: [gelöst] on-funktionen generieren aus einem object

      @oliverio
      richtig, das ist der letzte in der Liste.

      vielen Dank für die Hinweise. Ich werde mich morgen nochmal dransetzen.
      hab jetzt spätschicht..

      posted in JavaScript
      B
      benni27
    • RE: [gelöst] on-funktionen generieren aus einem object

      @codierknecht
      zeile 8 hab ich auch mal geloggt. es werden alle trigger sauber angelegt.
      aber auffällig ist, dass der letzte angelegte aussen_heckenlicht_state ist.

      ich probier mal weiter. evtl. hab ich einen Ansatz.

      Danke schonmal!

      und danke für den Tipp mit Timer. Werd ich noch nachziehen, macht Sinn 😉

      posted in JavaScript
      B
      benni27
    • RE: [gelöst] on-funktionen generieren aus einem object

      @codierknecht

      das mit den "echten" Alias ist mir bewusst.
      Zwei Gründe:
      ich wollte möglichst alles selbst erstellen um meine Programmierfähigkeiten weiter auszubauen. Bin nicht grad Profi... Daher zu meiner eigenen Übung.
      Zweitens: Ein Alias würde sofort den Original-State schalten. Das will ich aber ja nicht, ich will den über die funktion "ansteuern" schalten, um die Überwachung mit drin zu haben.

      Ich hab das mal geloggt.
      Egal welches Gerät ich schalte, die on-funktion wird getriggert.
      Aber wenn ich mir noch vor der if-Bedingung ein log reinsetze, das mir den trigger ausgibt, kommt immer aussen_heckenlicht_State.

      var flags = {};
      
      for (var key in homeKitobjectAlias) {
      
        var origID = eval(homeKitobjectAlias[key].orig);
        var aliasID = homeKitobjectAlias[key].alias;
        var flagID = homeKitobjectAlias[key].flag;
      
        on({id: aliasID, change: "ne"}, function (obj) {
          console.log("alias: " + aliasID)
          console.log("flagAlias: " + flagName)
          if (flags[flagName]) {
            flags[flagName] = false;
          } else {
            flags[flagName] = true;
            ansteuern(origID, obj.state.val, obj.oldState.val, aliasID);
          }
        });
      
        on({id: origID, change: "ne", ack: true}, function (obj) {
          console.log("origID: " + origID)
          console.log("flagOrig: " + flagName)
          if (flags[flagName]) {
            flags[flagName] = false;
          } else {
            flags[flagName] = true;
            setState(aliasID, obj.state.val, true);
          }
        });
      }
      

      Danke für die schnelle Antwort!

      posted in JavaScript
      B
      benni27
    • [gelöst] on-funktionen generieren aus einem object

      Hi,
      ich habe folgendes Problem.
      Ich nutze yahka für homekit.
      Meine ganzen Skripte steuern Lampen über eine globale funktion "ansteuern" an, nicht direkt durch setState. in der Funktion wird nach Timeout der Ack-Zustand abgefragt, bei Fehler bekomme ich eine Mitteilung dass die Lampe nicht reagiert. Funzt top.

      Bisher hatte ich in Yahka meine ganzen Geräte erstellt und direkt die Lampen-States geschalten.
      Ich möchte ein Skript, mit dem ich einen selbst generierten Alias über yahka schalte, und durch diesen dann die globale Funktion zum Lampe schalten aufrufe.

      Hier mal die global verfügbaren Skripte:
      defines: hier werden meine globalen Variablen definiert.

          const raum = {
              flur: {
                  TreppeLichterkette: {
                      STATE: 'zigbee.0.804b50fffeb72a3b.state',
                      DESCRIPTION: 'Flur Treppe Lichterkette'
                  },
                  WandlampenUnten: {
                      STATE: 'zigbee.0.84fd27fffe70e192.state',
                      BRIGHTNESS: 'zigbee.0.84fd27fffe70e192.brightness',
                      DESCRIPTION: 'Flur Wandlampen Unten'
                  },
                  WandlampenOben: {
                      STATE: 'zigbee.0.680ae2fffea535cf.state',
                      BRIGHTNESS: 'zigbee.0.680ae2fffea535cf.brightness',
                      DESCRIPTION: 'Flur Wandlampen Oben'
                  },
                  Tischlampe: {
                      STATE: 'hue-extended.0.lights.032-tischlampe.action.on',
                      BRIGHTNESS: 'hue-extended.0.lights.032-tischlampe.action.level',
                      DESCRIPTION: 'Flur Tischlampe'
                  }
              },
              kueche: {
                  Arbeitslicht: {
                      STATE: 'zigbee.0.680ae2fffea44ad6.state',
                      BRIGHTNESS: 'zigbee.0.680ae2fffea44ad6.brightness',
                      DESCRIPTION: 'Küche Arbeitslicht'                    
                  },
                  Deckenlampe: {
                      STATE: 'zigbee.0.84fd27fffe70cf16.state',
                      DESCRIPTION: 'Küche Deckenlampe'
                  },
                  Indirekt: {
                      STATE: 'hue-extended.0.lights.026-kuecheindirekt.action.on',
                      BRIGHTNESS: 'hue-extended.0.lights.026-kuecheindirekt.action.level',
                      XY: 'hue-extended.0.lights.026-kuecheindirekt.action.xy',
                      COLORTEMP: 'hue-extended.0.lights.026-kuecheindirekt.action.colorTemperature',
                      DESCRIPTION: 'Küche indirekte Beleuchtung'
                  },
                  SteckdoseFenster: {
                      STATE: 'shelly.0.SHSW-1#C45BBE564DF9#1.Relay0.Switch',
                      DESCRIPTION: 'Küche Steckdose am Fenster'
                  },
                  ButtonZirkulation: {
                      CLICK: 'zigbee.0.00124b0029198d06.click',
                      LongCLICK: 'zigbee.0.00124b0029198d06.long_click',
                      DoubleCLICK: 'zigbee.0.00124b0029198d06.double_click',
                      DESCRIPTION: 'Küche Button über der Spüle'
                  }
              },
              esszimmer: {
                  deckenlampe: {
                      STATE: 'zigbee.0.804b50fffeb73d1c.state',
                      BRIGHTNESS: 'zigbee.0.804b50fffeb73d1c.brightness',
                      DESCRIPTION: 'Esszimmer Deckenlampe'
                  },
                  barlampe: {
                      STATE: 'zigbee.0.804b50fffeb72408.state',
                      DESCRIPTION: 'Esszimmer Barlampe'
                  },
                  stehlampe: {
                      STATE: 'hue-extended.0.lights.027-esszimmerstehlampe.action.on',
                      BRIGHTNESS: 'hue-extended.0.lights.027-esszimmerstehlampe.action.level',
                      XY: 'hue-extended.0.lights.027-esszimmerstehlampe.action.xy',
                      COLORTEMP: 'hue-extended.0.lights.027-esszimmerstehlampe.action.colorTemperature',
                      DESCRIPTION: 'Esszimmer Stehlampe'
                  },
                  steckdoseFenster: {
                      STATE: 'shelly.0.SHSW-1#98CDAC24595B#1.Relay0.Switch',
                      DESCRIPTION: 'Esszimmer Steckdose am Fenster'
                  },
                  heizung: {
                      VENTILPOS: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85D844E.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_2.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Esszimmer Heizthermostat'
                  }
              },
              wintergarten: {
                  wandlampen: {
                      STATE: 'zigbee.0.804b50fffeb72672.state',
                      DESCRIPTION: 'Wintergarten Wandlampen'
                      },
                  fensteroeffner: {
                      POSITION: 'shelly.0.SHSW-25#3C6105E4E872#1.Shutter.Position',
                      DESCRIPTION: 'Wintergarten Fensteröffner'
                      },
                  markise: {
                      EINFAHREN: 'sonoff.0.Markise.POWER1',
                      AUSFAHREN: 'sonoff.0.Markise.POWER2',
                      DESCRIPTION: 'Wintergarten Markise'
                      },
                  automatik: {
                      STATE: 'yahka.meta.eigene_Datenpunkte.FreigabeWintergartenAutomatik',
                      DESCRIPTION: 'Wintergarten Automatikfreigabe für Markise und Fenster'
                      },
                  heizung: {
                      VENTILPOS: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85E52CD.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_3.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Wintergarten Heizthermostat'
                  }
              },
              wohnzimmer: {
                  Deckenlampe: {
                      STATE: 'zigbee.0.680ae2fffea520fe.state',
                      BRIGHTNESS: 'zigbee.0.680ae2fffea520fe.brightness',
                      DESCRIPTION: 'Wohnzimmer Deckenlampe'
                      },
                  StehlampeVorn: {
                      STATE: 'hue-extended.0.lights.018-wohnzimmerstehlampevorne.action.on',
                      BRIGHTNESS: 'hue-extended.0.lights.018-wohnzimmerstehlampevorne.action.level',
                      XY: 'hue-extended.0.lights.018-wohnzimmerstehlampevorne.action.xy',
                      COLORTEMP: 'hue-extended.0.lights.018-wohnzimmerstehlampevorne.action.colorTemperature',
                      DESCRIPTION: 'Wohnzimmer Stehlampe vorne'
                      },
                  StehlampeSofa: {
                      STATE: 'hue-extended.0.lights.019-wohnzimmersofastehlampe.action.on',
                      BRIGHTNESS: 'hue-extended.0.lights.019-wohnzimmersofastehlampe.action.level',
                      COLORTEMP: 'hue-extended.0.lights.019-wohnzimmersofastehlampe.action.colorTemperature',
                      DESCRIPTION: 'Wohnzimmer Stehlampe hinterm Sofa'
                      },
                  StromFernseher: {
                      STATE: 'shelly.0.SHSW-1#C45BBE778068#1.Relay0.Switch',
                      DESCRIPTION: 'Wohnzimmer Steckdosenschalter Fernseher'
                      },
                  SteckdoseFenster: {
                      STATE: 'shelly.0.SHSW-1#483FDAA24004#1.Relay0.Switch',
                      DESCRIPTION: 'Wohnzimmer Steckdose am Fenster'
                      },
                  heizung: {
                      VENTILPOS: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85D8437.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_1.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_1.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_1.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_1.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Wohnzimmer Heizthermostat'
                      }
              },
              bad: {
                  deckenlampe: {
                      STATE: 'zigbee.0.804b50fffeb34cf4.state',
                      DESCRIPTION: 'Bad Deckenlampe'
                  },
                  heizung: {
                      VENTILPOS: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85E590C.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_5.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Bad Heizthermostat'
                  }
              },
              buero: {
                  deckenlampe: {
                      STATE: 'zigbee.0.804b50fffeb34cf4.state',
                      DESCRIPTION: 'Büro Deckenlampe'
                  },
                  heizung: {
                      VENTILPOS: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85E504F.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_6.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Büro Heizthermostat'
                  }
              },
              ankleide: {
                  deckenlampe: {
                      STATE: 'zigbee.0.804b50fffeb3550c.state',
                      DESCRIPTION: 'Ankleidezimmer Deckenlampe'
                  },
                  heizung: {
                      VENTILPOS: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85D5C17.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_7.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Ankleidezimmer Heizthermostat'
                  }
              },
              schlafzimmer: {
                  deckenlampe: {
                      STATE: 'zigbee.0.680ae2fffea535c4.state',
                      BRIGHTNESS: 'zigbee.0.680ae2fffea535c4.brightness',
                      DESCRIPTION: 'Schlafzimmer Deckenlampe'
                  },
                  schranklicht: {
                      STATE: 'zigbee.0.0c4314fffee932d8.state',
                      DESCRIPTION: 'Schlafzimmer Schranklicht'
                  },
                  buttonTuer: {
                      CLICK: 'zigbee.0.00124b002919bc6a.click',
                      LongCLICK: 'zigbee.0.00124b002919bc6a.long_click',
                      DoubleCLICK: 'zigbee.0.00124b002919bc6a.double_click',
                      DESCRIPTION: 'Schlafzimmer Button an der Tür'
                  },
                  heizung: {
                      VENTILPOS_BALKON: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85E504C.ValveTappet.position',
                      VENTILPOS_FENSTER: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85D59FD.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_8.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Schlafzimmer Heizthermostat'
                  }
              },
              hobbyraum: {
                  deckenlampe: {
                      STATE: 'zigbee.0.804b50fffeb0d4ee.state',
                      DESCRIPTION: 'Hobbyraum Deckenlampe'
                  },
                  heizung: {
                      VENTILPOS: 'bshb.0.hdm:HomeMaticIP:3014F711A000005BB85DFE77.ValveTappet.position',
                      SET:'bshb.0.roomClimateControl_hz_9.RoomClimateControl.setpointTemperature',
                      SET_COMFORT: 'bshb.0.roomClimateControl_hz_9.RoomClimateControl.setpointTemperatureForLevelComfort',
                      SET_ECO: 'bshb.0.roomClimateControl_hz_9.RoomClimateControl.setpointTemperatureForLevelEco',
                      SUMMER: 'bshb.0.roomClimateControl_hz_9.RoomClimateControl.summerMode',
                      DESCRIPTION: 'Hobbyraum Heizthermostat'
                  }
              },
              keller: {
                  deckenlampen: {
                      STATE: 'zigbee.0.804b50fffeb72695.state',
                      DESCRIPTION: 'Keller Deckenlampen'
                  }
              },
              garage: {
                  deckenlampe: {
                      STATE: 'shelly.0.SHSW-1#E8DB84D24E26#1.Relay0.Switch',
                      INPUT: 'shelly.0.SHSW-1#E8DB84D24E26#1.Relay0.Input',
                      DESCRIPTION: 'Garage Deckenlampe'
                  },
                  fluter: {
                      STATE: 'shelly.0.SHSW-1#E8DB84D61FFB#1.Relay0.Switch',
                      INPUT: 'shelly.0.SHSW-1#E8DB84D61FFB#1.Relay0.Input',
                      DESCRIPTION: 'Garage Fluter'
                  },
                  bwMelder: {
                      PRESENCE: 'zigbee.0.001788010649aa21.occupancy',
                      LIGHT: 'zigbee.0.001788010649aa21.illuminance',
                      TEMP: 'zigbee.0.001788010649aa21.temperature',
                      DESCRIPTION: 'Garage Bewegungsmelder'
                  }
              },
              aussen: {
                  heckenlicht: {
                      STATE: 'zigbee.0.804b50fffeb0d7fa.state',
                      DESCRIPTION: 'Aussen Heckenbeleuchtung'
                  },
                  haustuerBwMelder: {
                      STATE: 'shelly.0.SHSW-1#E8DB84D32B70#1.Relay0.Switch',
                      CLICK: 'shelly.0.SHSW-1#E8DB84D32B70#1.Relay0.Input',
                      LongCLICK: 'shelly.0.SHSW-1#E8DB84D32B70#1.Relay0.longpush',
                      EVENT: 'shelly.0.SHSW-1#E8DB84D32B70#1.Relay0.Event',
                      EVENTCOUNT: 'shelly.0.SHSW-1#E8DB84D32B70#1.Relay0.EventCount',
                      DESCRIPTION: 'Aussen Bewegungsmelder an der Haustür'
                  }
              }
          }
      

      die funktion Ansteuern: das ist die global verfügbare funktion, mit der ich Lampen ansteuere

      //Eingangsvariablen sind Object-IDs, die angesteuert werden sollen und der Schaltzustand
      
      //Variablendeklaration
      let ansteuern_ID;
      let ansteuern_Value;
      let ansteuern_oldValue;
      let ansteuern_desc;  //Beschreibung für die Push-Mitteilung
      
      //Funktion
      function ansteuern (ansteuern_ID, ansteuern_Value, ansteuern_oldValue, ansteuern_desc) {
          var push_desc;
          if (ansteuern_desc == undefined) {
              push_desc = ansteuern_ID;
          } else {
              push_desc = ansteuern_desc;
          };
      
          if (getState(ansteuern_ID).val != ansteuern_Value  ||
              getState(ansteuern_ID).ack == false                 ) {
              
              setState(ansteuern_ID, ansteuern_Value);
      
      
              var timeout = setTimeout(async function() {
                  if (getState(ansteuern_ID).ack == false ) {
      
                      setState(ansteuern_ID, ansteuern_oldValue);
      
                      var secondtryTimeout = setTimeout(async function(){
                          setState(ansteuern_ID, ansteuern_Value);
                      }, 30);
      
                      var innerTimeout = setTimeout(async function(){
                          if (getState(ansteuern_ID).ack == false ) {
                              sendTo("pushover.0", {
                              title:      "Gerät reagiert nicht.",
                              message:    "Bitte nochmal schalten oder prüfen: " + push_desc
                              });
                              setState(ansteuern_ID, ansteuern_oldValue);
                          };
                      },3000);
                  };
              },3000);
          };
      };
      

      nun zu meinem neuen Skript und damit auch Problem:

      //es werden States erzeugt, die für die Homeapp genutzt werden
      
      var roomindex;
      var deviceindex;
      var statindex;
      
      var homeKitobjectAlias = {};
      
      
      for (roomindex in raum){
          for (deviceindex in raum[roomindex]){
              if (deviceindex != "haustuerBwMelder"){
                  for (statindex in raum[roomindex][deviceindex]){
                      if (statindex == "STATE"                ||
                          statindex == "BRIGHTNESS"           ||
                          statindex == "SET"                    ) {
                          var objectName = "javascript.0.eigeneDatenpunkte.HomeKit.lamplist." + roomindex + "_" + deviceindex + "_" + statindex;
                          var objectValue = getState(eval("raum." + roomindex + "." + deviceindex + "." + statindex)).val;
                          var objectType = getObject(eval("raum." + roomindex + "." + deviceindex + "." + statindex)).common.type;
                          
                          if (!existsState(objectName)) {
                              createState(objectName, objectValue, {
                                  name: roomindex + "_" + deviceindex + "_" + statindex,
                                  type: objectType,
                                  read: true,
                                  write: true
                              });
                          } else {
                              setState(objectName, objectValue);
                          };
                          var flagName = "flag_" + objectName;
                          homeKitobjectAlias[roomindex + "_" + deviceindex + "_" + statindex] = {
                              orig: "raum." + roomindex + "." + deviceindex + "." + statindex, 
                              alias: objectName,
                              flag: flagName
                          };
                      }
                  }
              }
          }
      }
      
      
      var flags = {};
      
      for (var key in homeKitobjectAlias) {
      
        var origID = eval(homeKitobjectAlias[key].orig);
        var aliasID = homeKitobjectAlias[key].alias;
        var flagID = homeKitobjectAlias[key].flag;
      
        on({id: aliasID, change: "ne"}, function (obj) {
          if (flags[flagName]) {
            flags[flagName] = false;
          } else {
            flags[flagName] = true;
            ansteuern(origID, obj.state.val, obj.oldState.val, aliasID);
          }
        });
      
        on({id: origID, change: "ne", ack: true}, function (obj) {
          if (flags[flagName]) {
            flags[flagName] = false;
          } else {
            flags[flagName] = true;
            setState(aliasID, obj.state.val, true);
          }
        });
      }
      

      grundsätzlich funktioniert alles soweit. die Aliase werden erzeugt, das Object homeKitObjectAlias wird auch sauber beschrieben. Habe ich über console.log schon ausgelesen. läuft.

      allerdings werden scheinbar die on-funktionen nicht sauber geschrieben.

      egal, welche Lampe ich schalte (egal ob über Lichtschalter oder in der Object-Liste), wird immer nur auf aussen_Heckenlicht_STATE geschrieben. Die on-Funktionen reagieren auf alle Lampen, schalten aber nur dieses eine State.

      Mir gehen langsam die Ideen aus, ausser mühevoll und umständlich für jeden state eine eigene on-funktion zu schreiben. Das müsste doch so irgendwie gehen?

      Wenn ich mir den homeKitaliasObject[key].orig per console ausgeben lasse, steht auch immer nur aussen_Heckenlicht_STATE drin. obwohl auf eine andere Lampe reagiert wurde.

      Kann jemand weiterhelfen?

      Vielen Dank schonmal, liebe Grüße
      Benni

      posted in JavaScript
      B
      benni27
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo