Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    D
    • Profile
    • Following 1
    • Followers 0
    • Topics 15
    • Posts 68
    • Best 1
    • Groups 1

    DarkSoul

    @DarkSoul

    Starter

    1
    Reputation
    17
    Profile views
    68
    Posts
    0
    Followers
    1
    Following
    Joined Last Online
    Email coolrod@gmx.de

    DarkSoul Follow
    Starter

    Best posts made by DarkSoul

    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom 'nabend.
      Scheint zu funktionieren.
      Ich weiß nur nicht, ob der abgefragte DP auch das wiedergibt was er soll. Ich habe eine gute Stunde die Batterien aus dem Thermostat raus genommen und er hat seinen Status nicht geändert. Auch ein Mehrmaliges neustarten der Instance hat da nichts geändert. Aber das ist kein Problem des Scriptes. ZigBee halt, ist wohl ein wenig sehr träge.

      Dank dir und schönen Abend noch

      posted in Einsteigerfragen
      D
      DarkSoul

    Latest posts made by DarkSoul

    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom 'nabend.
      Scheint zu funktionieren.
      Ich weiß nur nicht, ob der abgefragte DP auch das wiedergibt was er soll. Ich habe eine gute Stunde die Batterien aus dem Thermostat raus genommen und er hat seinen Status nicht geändert. Auch ein Mehrmaliges neustarten der Instance hat da nichts geändert. Aber das ist kein Problem des Scriptes. ZigBee halt, ist wohl ein wenig sehr träge.

      Dank dir und schönen Abend noch

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom Also mein aktuelles Skript sieht aus:

      
      const devicePath = 'zigbee.1.0ceff6fffedc84ef'; // Pfad zu den Thermostat Datenpunkten
      const aliasPath = 'alias.0.Heizungen.HeizungBad'; // Pfad zu den Thermostat Alias
      const userPath = '0_userdata.0.Heizungen.HeizungBad'; // Pfad für die Benutzerdatenpunkte
       
      async function createUserdata() {
          extendObject(userPath, { type: 'folder', common: { name: 'Thermostat' }, native: {} });
          await createStateAsync(userPath + '.lowbat', false, { type: 'boolean', write: true });
          await createStateAsync(userPath + '.Auto', false, { type: 'boolean', write: true });
          await createStateAsync(userPath + '.Manual', false, { type: 'boolean', write: true });
          await createStateAsync(userPath + '.power', false, { type: 'boolean', write: true });
      }
      createUserdata();
       
      async function createAliasThermostat() {
          extendObjectAsync(aliasPath, { type: 'channel', common: { name: 'Thermostat', role: 'thermostat' }, native: {} });
          await createAliasAsync(aliasPath + '.UNREACH', devicePath + '.available', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'available', write: false });
          await createAliasAsync(aliasPath + '.LOWBAT', userPath + '.lowbat', true, <iobJS.StateCommon>{ type: 'boolean', role: 'indicator.maintenance', name: 'Battery', write: false });
          /*await createAliasAsync(aliasPath + '.ACTUAL', devicePath + '.local_temperature', true, <iobJS.StateCommon>{ type: 'number', role: 'value.themperature', name: 'Temperature', write: false });*/
          /*await createAliasAsync(aliasPath + '.SET', devicePath + '.occupied_heating_setpoint', true, <iobJS.StateCommon>{ type: 'number', role: 'level.themperature', name: 'Setpoint', write: true });*/
          await createAliasAsync(aliasPath + '.AUTOMATIC', userPath + '.Auto', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch.mode.enable', name: 'Auto', write: true });
          await createAliasAsync(aliasPath + '.MANUAL', userPath + '.Manual', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch.mode.enable', name: 'Manual', write: true });
          await createAliasAsync(aliasPath + '.POWER', userPath + '.power', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch.power', name: 'Power', write: true });
          await createAliasAsync(aliasPath + '.MODE', devicePath + '.mode', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'Modus' });
      }
       
      createAliasThermostat();
       
      // überwacht Batterielevel
      // kleiner als 25% wird angezeigt
      on({ id: [devicePath + '.battery'], change: 'ne' }, function (obj) {
          if (obj.state.val < 25) {
              setStateAsync(userPath + '.lowbat', true);
          } else {
              setStateAsync(userPath + '.lowbat', false);
          }
      });
       
      // überwacht den Modus vom Thermostat
      // setzt die Benutzerdatenpunkte entsprechend
      on({ id: [devicePath + '.mode'], change: 'ne' }, function (obj) {
          switch (obj.state.val) {
              case 'auto':
                  setStateAsync(userPath + '.Auto', true);
                  setStateAsync(userPath + '.Manual', false);
                  setStateAsync(userPath + '.power', true);
                  break;
       
              case 'heat':
                  setStateAsync(userPath + '.Auto', false);
                  setStateAsync(userPath + '.Manual', true);
                  setStateAsync(userPath + '.power', true);
                  break;
       
              default:
                  setStateAsync(userPath + '.Auto', false);
                  setStateAsync(userPath + '.Manual', false);
                  setStateAsync(userPath + '.power', false);
                  break;
          }
      });
       
      // überwacht den Modus der Benutzerdatenpunkte
      // setzt den Thermostat Modus entsprechend
      on({ id: [userPath + '.Auto'], change: 'ne' }, function (obj) {
          if (obj.state.val) {
              setStateAsync(devicePath + '.mode', 'auto');
          }
      });
       
      on({ id: [userPath + '.Manual'], change: 'ne' }, function (obj) {
          if (obj.state.val) {
              setStateAsync(devicePath + '.mode', 'heat');
          }
      });
       
      on({ id: [userPath + '.power'], change: 'ne' }, function (obj) {
          if (obj.state.val) {
              setStateAsync(devicePath + '.mode', 'auto');
          } else {
              setStateAsync(devicePath + '.mode', 'off');
          }
      });
      
      

      Die ersten drei Zeilen an die Gegebenheiten angepasst.
      Und unter "async function" die beiden Zeilen abgeschaltet, da die in dem Alias nicht passten. Da habe ich die originalen DP aus dem ZigBee/Sonoff eingetragen.
      HeizungBad.png
      Der Rest des Skript sieht aus wie in der Vorlage.
      Und bis auf das Symbol für die Verbindung "unreach" läuft es auch bestens.
      Warum der Geräte Adapter einen Schieberegler als Gerät anzeigt und nicht Thermostat weiß ich auch nicht.

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom
      Mit !val im fx
      Nummer1.png
      Nach dem "OK"
      Nummer2.png
      Kein Speichern verfügbar ...

      Ich habe gerade gesehen, das der Punkt avaible zeimal drin ist, aber selbst wenn ich einen raus lösche geht es nicht.

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom Ähm, jaaa, nur kann ich den Alias dann nicht Speichern. Das Feld ist ausgegraut. Es geht nur Abbrechen und damit wird die Änderung dann nicht übernommen ???

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: SONOFF NSPanel mit Lovelace UI

      Moin Gemeinde.

      Nachdem ich mit tatkräftiger Unterstützung hier meine NSPanel zum laufen bekommen habe, danke noch mal dafür, tauchen nun neue Problemchen auf.
      Ich wollte meine 2 Sonos Lautsprecher über die Media Card bedienen. Soweit läuft das auch sehr gut.
      Nur kann ich leider nur einen Lautsprecher ansteuern. Auf der Auswahlseite tauchen beide auf, spielen tut nur der den ich unter medieDevice fest eingestellt habe.
      Der Scriptteil:

      };
      let Sonos: PageType =
      {
          'type': 'cardMedia',
          'heading': 'Sonos',
          'items': [{   
                      id: AliasPath + 'Media.PlayerSonos', 
                      adapterPlayerInstance: 'sonos.0.',
                      mediaDevice: '192_168_1_150',
                      speakerList: ['Büro','Mobil'],
                      playList: ['Freitag_Nachmittagsmix','BestOf01','MamaMia'],
                      colorMediaIcon: colorSonos,
                      colorMediaArtist: Yellow,
                      colorMediaTitle: Yellow,
                      alwaysOnDisplay: true,
                      autoCreateALias: true
                   }]
      };
      

      Ich habe mich mit den Eintragungen an den Text in der Anleitung gehalten:
      "
      Speaker Liste (Array speakerList)
      Diese List sollte die Wiedergabegeräte des primären Sonos und ggfs. optionale Geräte aus dem Datenpunkt sonos.0.root.<DEVICE_IP>.members enthalten.
      "
      und die Eintragung aus diesem DP übernommen.
      Aber wie gesagt, tauchen auch als Auswahl auf, kann sie aber nicht auswählen?!?!
      Sehr seltsam...
      Jemand ne Idee?

      Dank euch

      Mist der sollte doch an den Lovelace Haupt Fred. Kann mal ein Admin ihn hinten dran hängen?

      posted in Hardware
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom Ja läuft.
      Ich habe bei mir noch die Zeile mit dem Unreach raus genommen. Irgendwie habe ich da immer ein rotes Sysmbol gehabt.
      Denke da ist irgenwo noch ein Dreher der Zustände drin.

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @armilar Ist nur ein Alias. Ein Teril besteht aus den Daten des Scripts, ein Teil aus den direkten DP.
      aliasHeizungBad.jpg

      Und ja an das Pro hatte ich auch schon gedacht, aber ich brauche die beiden echten Tasten mit den Relais. Wenn alles klappt ersetzt es einen Doppellichtschalter.

      @TT-Tom Ist auch kein Problem mit der Verzögerung. Die Modi werden sehr selten umgeschaltet.

      Dank euch beiden noch einmal recht herzlich, toller Service 👍

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @armilar Moin.
      So das geänderte Script ausprobiert läuft soweit...
      Die beiden Punkte "Set" und Actual" haben ja funktioniert in dem original Alias. Ich habe mir mal erlaubt die im Script auszuklammern.

      async function createAliasThermostat() {
          extendObjectAsync(aliasPath, { type: 'channel', common: { name: 'Thermostat', role: 'thermostat' }, native: {} });
          await createAliasAsync(aliasPath + '.UNREACH', devicePath + '.available', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'available', write: false });
          await createAliasAsync(aliasPath + '.LOWBAT', userPath + '.lowbat', true, <iobJS.StateCommon>{ type: 'boolean', role: 'indicator.maintenance', name: 'Battery', write: false });
          /*await createAliasAsync(aliasPath + '.ACTUAL', devicePath + '.local_temperature', true, <iobJS.StateCommon>{ type: 'number', role: 'value.themperature', name: 'Temperature', write: false });*/
          /*await createAliasAsync(aliasPath + '.SET', devicePath + '.occupied_heating_setpoint', true, <iobJS.StateCommon>{ type: 'number', role: 'level.themperature', name: 'Setpoint', write: true });*/
          await createAliasAsync(aliasPath + '.AUTOMATIC', userPath + '.Auto', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch.mode.enable', name: 'Auto', write: true });
          await createAliasAsync(aliasPath + '.MANUAL', userPath + '.Manual', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch.mode.enable', name: 'Manual', write: true });
          await createAliasAsync(aliasPath + '.POWER', userPath + '.power', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch.power', name: 'Power', write: true });
          await createAliasAsync(aliasPath + '.MODE', devicePath + '.mode', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'Modus' });
      }
      

      Wenn sie noch im Script drin sind funktioniert die Temperatureinstellung nur zeitweise.

      Die Modi Umschaltung klemmt ein wenig. Mal geht es mal nicht. Hat fast den Anschein als muss man den richtigen Moment für das Umschalten erwischen?!?!

      Mal so eine ketzerische Frage. Eine kleine html Seite, z.B. ein extra vis aus dem Broker, kann man nicht auf dem Display darstellen? Das würde alles wesentlich vereinfachen. Nur so ein Gedanke...😇

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom :Hallo und schon mal danke für die Mühe. Funktion... jein
      Die Scriptzeilen habe ich angepasst:

      const devicePath = 'zigbee.1.0ceff6fffedc84ef'; // Pfad zu den Thermostat Datenpunkten
      const aliasPath = 'alias.0.Heizungen.HeizungBad'; // Pfad zu den Thermostat Alias
      const userPath = '0_userdata.0'; // Pfad für die Benutzerdatenpunkte
      

      Allerdings kommt eine Reihe Fehlermeldungen:

      28.1.2025, 17:43:12.810	[info ]: javascript.0 (5956) Compiling TypeScript source script.js.TRVs.Sonoff_Display
      28.1.2025, 17:43:12.829	[info ]: javascript.0 (5956) script.js.TRVs.Sonoff_Display: source code did not change, using cached compilation result...
      28.1.2025, 17:43:12.840	[info ]: javascript.0 (5956) script.js.TRVs.Sonoff_Display: registered 5 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      28.1.2025, 17:43:12.883	[error]: javascript.0 (5956) script.js.TRVs.Sonoff_Display: Alias source object "zigbee.1.0ceff6fffedc84ef.Mode" does not exist.
      28.1.2025, 17:43:12.887	[error]: javascript.0 (5956) script.js.TRVs.Sonoff_Display: Error: Alias source object "zigbee.1.0ceff6fffedc84ef.Mode" does not exist.
      28.1.2025, 17:43:12.888	[error]: javascript.0 (5956)     at script.js.TRVs.Sonoff_Display:93:42
      28.1.2025, 17:43:12.888	[error]: javascript.0 (5956)     at step (script.js.TRVs.Sonoff_Display:33:23)
      28.1.2025, 17:43:12.888	[error]: javascript.0 (5956)     at Object.next (script.js.TRVs.Sonoff_Display:14:53)
      28.1.2025, 17:43:12.888	[error]: javascript.0 (5956)     at fulfilled (script.js.TRVs.Sonoff_Display:5:58)
      28.1.2025, 17:43:34.352	[warn ]: javascript.0 (5956)     at Object.<anonymous> (script.js.TRVs.Sonoff_Display:137:9)
      28.1.2025, 17:43:34.368	[info ]: javascript.0 (5956) Stopping script script.js.TRVs.Sonoff_Display
      28.1.2025, 17:43:34.934	[error]: host.ioBroker(SmartHome) Caught by controller[1]:     at script.js.TRVs.Sonoff_Display:7008:42
      28.1.2025, 17:43:34.934	[error]: host.ioBroker(SmartHome) Caught by controller[1]:     at step (script.js.TRVs.Sonoff_Display:6948:23)
      28.1.2025, 17:43:34.934	[error]: host.ioBroker(SmartHome) Caught by controller[1]:     at Object.next (script.js.TRVs.Sonoff_Display:6929:53)
      28.1.2025, 17:43:34.934	[error]: host.ioBroker(SmartHome) Caught by controller[1]:     at fulfilled (script.js.TRVs.Sonoff_Display:6920:58)
      

      Im Display tauchen ein paar zusätzliche Symbole auf, die sich auch schalten lassen. Jeden Falls die "A","M" und "On/Off"
      A und M lassen auch den Zustand ändern.
      Allerdings ist mir schon einmal der JS Adapter dabei abgestürzt...
      Dis01.jpg

      posted in Einsteigerfragen
      D
      DarkSoul
    • RE: NSPanel/Lovelace und Sonoff TRV

      @tt-tom Sodale, ich hoffe das sind die richtige DAten über den DDP Mode:

      {
        "type": "state",
        "common": {
          "name": "Mode",
          "type": "string",
          "states": {
            "auto": "AUTO",
            "heat": "heat",
            "off": "off"
          },
          "read": true,
          "write": true,
          "role": "state"
        },
        "native": {},
        "_id": "zigbee.1.0ceff6fffedc84ef.mode",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        },
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1737991842032
      }
      

      Aber warum man die nicht entsprechend in dem Alias einstellen bleibt ein Rätselt?!
      Und für dir Batterie wäre ein Wechsel auf "Low Bat" bei X% eine (Not)-Lösung.

      posted in Einsteigerfragen
      D
      DarkSoul
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo