Navigation

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

    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

    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 45
    • Best 4
    • Groups 1

    Der-Jeti

    @Der-Jeti

    Starter

    5
    Reputation
    24
    Profile views
    45
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Der-Jeti Follow
    Starter

    Best posts made by Der-Jeti

    • RE: Test Adapter Energiefluss v3.6.x GitHub/Latest

      Könntest du eine Option einbauen das unter 1000W -
      Watt angezeigt werden und über 1000W - kw?

      posted in Tester
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      @gmt94 ich habe sie angeschrieben mit meiner Account Email

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Adapterliste leer

      @mcm1957 sagte in Adapterliste leer:

      Zwischenzeitlich sollte die repo Datei bereits neu erstellt worden sein. Tritt das Problem nach einem neuerlichen "Nach Updates suchen" noch immer auf ?

      Ja

      posted in ioBroker Allgemein
      Der-Jeti
      Der-Jeti
    • RE: Alexa Shopping List mit Bring synchronisieren

      @mcbirne mit der Katze von github laden.

      posted in Skripten / Logik
      Der-Jeti
      Der-Jeti

    Latest posts made by Der-Jeti

    • RE: Adapter Worx Landroid v3.x.x

      @gmt94 ich habe sie angeschrieben mit meiner Account Email

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      Meine Sperre ist auch aufgehoben. App funktioniert wieder.
      Da es bei anderen jetzt auch wieder funktioniert denke ich das meine Böse Email nichts damit zu tun hat.

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      @jaridian da habe ich alles raus gelöscht. Robi und iobroker sind schon lange aus. Die haben mich einfach nicht entsperrt. Ich werde abwarten was der Support zu meiner Nachricht schreibt. Zur Not warte ich die Zeit ab. Regnet ja momentan sowieso ständig. Werde aber trotzdem nicht aufgeben.

      Bin aber auch schon länger am überlegen einen mit GPS zu nehmen. Damit wäre ich viel Flexibler.

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      Ich habe immernoch eine sperre von 46 Tagen. Die haben bei mir also nichts rausgenommen. Soviel zu sie haben mich entsperrt dauert 48 Std.
      Habe da jetzt mal etwas Druck gemacht. An Problemen arbeiten kann ich ja verstehen. Aber den Kunden zu belügen und Standard antworten raus schicken die sich garnicht auf der eingangs Mail beziehen finde nicht nicht akzeptabel L.

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Alexa Shopping List mit Bring synchronisieren

      @mcbirne mit der Katze von github laden.

      posted in Skripten / Logik
      Der-Jeti
      Der-Jeti
    • RE: Alexa Shopping List mit Bring synchronisieren

      Mit der neuen Version vom Alexa Adapter 3.27.0 und dem Script funktioniert das Synchronisieren auf beiden Seiten wieder.

      const bringBaseId = 'bring.0.xxxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxxxx';
      const alexa2BaseId = 'alexa2.0.Lists.SHOP';
      
      const bringListId = bringBaseId + '.content';
      const bringListCompletedId = bringBaseId + '.recentContent';
      const bringAddToList = bringBaseId + '.saveItem';
      const bringCompleteItem = bringBaseId + '.moveToRecentContent';
      const alexaAddToList = alexa2BaseId + '.#New';
      const alexaListId = alexa2BaseId + '.json';
      
      const printDebug = true;
      function debug(msg) {
          if (printDebug) log(msg);
      }
      
      const TodoItemStatus = {
          NeedsAction: 'needs_action',
          Completed: 'completed',
      };
      
      function ListCleaner(Eintrag = '') {
          return Eintrag
              .split(' ')
              .map(w => w.charAt(0).toUpperCase() + w.slice(1))
              .join(' ');
      }
      
      function compareCompleted(alexaItem, bringItem) {
          return (
              (alexaItem.completed && bringItem.status === TodoItemStatus.Completed) ||
              (!alexaItem.completed && bringItem.status === TodoItemStatus.NeedsAction)
          );
      }
      
      function eliminateDuplicated() {
          const raw = getState(alexaListId).val;
          if (!raw) return;
          const list = JSON.parse(raw);
          const seen = {};
          for (const item of list) {
              const cleaned = ListCleaner(item.value);
              if (seen[cleaned]) {
                  debug(`Delete duplicate Alexa item: ${item.value}`);
                  setState(`${alexa2BaseId}.items.${item.id}.#delete`, true);
              } else {
                  seen[cleaned] = true;
              }
          }
      }
      
      function syncLists(alexaList, bringList, timestampBring, source, recentList) {
          for (const alexaItem of alexaList) {
              const cleanedName = ListCleaner(alexaItem.value);
              alexaItem.found = false;
      
              // Suche im aktiven Bring-Einträgen
              for (const bringItem of bringList) {
                  if (ListCleaner(bringItem.name) === cleanedName) {
                      alexaItem.found = true;
                      bringItem.found = true;
      
                      if (alexaItem.updatedDateTime > timestampBring) {
                          if (!compareCompleted(alexaItem, bringItem)) {
                              if (source === 'Alexa' && alexaItem.completed) {
                                  debug(`Markiere "${bringItem.name}" als erledigt in Bring (von Alexa)`);
                                  setState(bringCompleteItem, cleanedName);
                              }
                          }
                      } else {
                          if (!compareCompleted(alexaItem, bringItem)) {
                              if (source === 'Bring') {
                                  debug(`Aktualisiere "${alexaItem.value}" in Alexa (von Bring)`);
                                  setState(`${alexa2BaseId}.items.${alexaItem.id}.completed`, bringItem.status === TodoItemStatus.Completed);
                              }
                          }
                      }
                  }
              }
      
              // Suche im "recentContent" von Bring
              for (const bringItem of recentList) {
                  if (ListCleaner(bringItem.name) === cleanedName) {
                      alexaItem.found = true;
                      bringItem.found = true;
      
                      if (alexaItem.updatedDateTime > timestampBring) {
                          if (source === 'Alexa' && !compareCompleted(alexaItem, bringItem)) {
                              debug(`Füge "${bringItem.name}" erneut zu Bring hinzu (von Alexa)`);
                              setState(bringAddToList, cleanedName);
                          }
                      } else {
                          if (!compareCompleted(alexaItem, bringItem)) {
                              if (source === 'Bring') {
                                  debug(`Lösche Alexa-Eintrag "${alexaItem.value}" (von Bring)`);
                                  setState(`${alexa2BaseId}.items.${alexaItem.id}.#delete`, true);
                              }
                          }
                      }
                  }
              }
      
              // Alexa-Item nicht gefunden in Bring
              if (!alexaItem.found) {
                  if (alexaItem.completed) {
                      debug(`Lösche erledigten Alexa-Eintrag "${alexaItem.value}", nicht in Bring gefunden.`);
                      setState(`${alexa2BaseId}.items.${alexaItem.id}.#delete`, true);
                  } else if (source === 'Alexa') {
                      debug(`Füge neuen Alexa-Eintrag "${alexaItem.value}" zu Bring hinzu`);
                      setState(bringAddToList, cleanedName);
                  }
              }
          }
      
          // Bring-Einträge, die nicht in Alexa sind
          for (const bringItem of bringList) {
              if (!bringItem.found && bringItem.status !== TodoItemStatus.Completed && source === 'Bring') {
                  debug(`Füge Bring-Eintrag "${bringItem.name}" zu Alexa hinzu`);
                  setState(alexaAddToList, ListCleaner(bringItem.name));
              }
          }
      }
      
      function doSync(source) {
          eliminateDuplicated();
      
          const rawAlexa = getState(alexaListId).val;
          const rawBring = getState(bringListId).val;
          const rawCompleted = getState(bringListCompletedId).val;
      
          if (!rawAlexa || !rawBring || !rawCompleted) {
              debug('Datenpunkte unvollständig');
              return;
          }
      
          const alexaList = JSON.parse(rawAlexa);
          const bringList = JSON.parse(rawBring);
          const bringCompleted = JSON.parse(rawCompleted);
          const timestamp = getState(bringListId).ts;
      
          syncLists(alexaList, bringList, timestamp, source, bringCompleted);
      }
      
      on({ id: bringListId, change: 'any' }, () => {
          debug('Änderung durch Bring erkannt');
          doSync('Bring');
      });
      
      on({ id: alexaListId, change: 'any' }, () => {
          debug('Änderung durch Alexa erkannt');
          doSync('Alexa');
      });
      
      // Initial Sync beim Start
      doSync('Startup');
      
      
      posted in Skripten / Logik
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      Dann werde ich berichten ob dann die 57 Tage dann weg sind.

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      @saeft_2003 bei mir auch.

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      Es tut sich etwas.

      Sehr geehrter Herr xxx

      vielen Dank für Ihre Geduld.

      Wir haben soeben die Rückmeldung bekommen, dass die Sperrung innerhalb der nächsten 48 Stunden aufgehoben wird.

      Wir entschuldigen uns noch mal vielmals für die Umstände, die sie durch diese Sperrung hatten.

      Für Rückfragen stehen wir Ihnen jederzeit gerne zur Verfügung.

      Ihr Worx Support-Team.

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    • RE: Adapter Worx Landroid v3.x.x

      Ich habe auch eine 57 Tage sperre. Ein Technischer Support Mitarbeiter hat mir gesagt das sie die Probleme kennen und mit Hochdruck daran arbeiten.

      Der normale Support kann dazu nichts sagen, darum wird immer eine ausrede genannt.

      posted in Entwicklung
      Der-Jeti
      Der-Jeti
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo