Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Z
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 44
    • Best 2
    • Groups 1

    zzippo

    @zzippo

    Starter

    2
    Reputation
    53
    Profile views
    44
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    zzippo Follow
    Starter

    Best posts made by zzippo

    • Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      Hallo, ich wollte kurz vorstellen, wie ich die Sprachsteuerung meiner Heimautomatisierung gelöst habe.
      Am Anfang habe ich mit den alt bekannten Mitteln gearbeitet, also z.B. mit node-red-contrib-alexa-home.
      Nach einer Weile habe ich gemerkt, dass doch zu viele Einschränkungen vorhanden sind und mich auf die Suche nach einer neuen Lösung gemacht.
      Herausgekommen ist folgendes:

      • Ein eigener Smarthome Skill bei Amazon welcher über einen Raspi Reverse Proxy auf Node Red geleitet wird.
      • Ein Windows Programm mit dem ich beliebige Geräte konfigurieren kann, und das auf die Amazon Gerätesuche reagiert.
      • Eine SqLite Datenbank auf dem IOBroker Raspi, über die alle Geräte mit den entsprechenden IOBroker Datenpunkten verbunden werden.
      • Ein recht kurzer Node-Red Flow, der dann alle Dinge behandelt.

      Die Großen Vorteile an der Sache sind:

      • Alexa kann individuelle Antworten geben (zum Beispiel wenn ich sage Gäste WLAN ein. Antwortet mir Alexa mit der SSID und dem Passwort)
      • Ich kann mit gleichen Sprachbefehlen in verschiedenen Räumen arbeiten (z.B. Licht ein)
      • Ich kann alle Alexa Controller verwenden (z.B. mode, precentage, color etc.)
      • Neue Geräte erfordern keine Programmierung sondern lediglich eine Zeile in der Datenbank

      Bei Interesse kann ich das gerne einmal genauer vorstellen.

      AlexaDeviceGenerator.jpg
      db.jpg
      Flow.jpg

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      Ich wollte mal ein kurzes Update geben zum aktuellen Stand.

      Was geplant ist:

      • Wie gehabt ein (oder mehrere) eigene Alexa skills
      • Wegfall des Reverse-Proxies
      • Webseite zum konfigurieren der Skills und devices
      • Wegfall der SQLite Datenbank
      • Umleitung jedes Requests vom Alexa-Skill auf beliebige Ziele (z.B. Node-Red)
      • Selbsbehandeln von Alexa-Requests
      • Frei definierbare Scripte zum wandeln der Ein und Ausgangs-Werte
      • Automatisches Rückmeldung von Stati an Alexa-App
      • Gerätesuche ersetzen durch asyncrones senden an die Alexa-API
      • .... und was mir sonst noch einfällt

      Was bereits geht:

      • Webseite mit Configuration der Skills
      • Webseite mit Configuration von Geräten, implementiert sind bereits: Power,PowerLevel,Color,Brightness,ColorTemperature,Percentage,Mode,Range,Toggle,Thermostat und Input Controller.
      • Hinzufügen von Skills in der Alexa-App (inkl. abholen der access und refresh tokens über AuthO
      • die Alexa Lambda Funktion kommuniziert schon über https mit meinem 'Skill-Server'
      • Ich hole den Cookie vom Alexa2 Adapter und kann so die Alexa-API ansprechen
      • Ich kann von der Alexa API abholen welcher Skill welche Geräte hat.
      • Alexa kann schon sprechen
      • Mann kann schon aktiv Geräte zu den Skills hinzufügen / updaten oder löschen.

      was noch so fehlt:

      • LetsEncrypt im IO-Broker zum laufen kriegen (im Moment hab ich die Keys per Hand kopiert)
      • Behandlung aller Requests zum Schalten, User-Scripte implementieren....

      hört sich erstmal nicht mehr viel an, wird aber sicher noch eine Weile brauchen.

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo

    Latest posts made by zzippo

    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      Ich wollte mal ein kurzes Update geben zum aktuellen Stand.

      Was geplant ist:

      • Wie gehabt ein (oder mehrere) eigene Alexa skills
      • Wegfall des Reverse-Proxies
      • Webseite zum konfigurieren der Skills und devices
      • Wegfall der SQLite Datenbank
      • Umleitung jedes Requests vom Alexa-Skill auf beliebige Ziele (z.B. Node-Red)
      • Selbsbehandeln von Alexa-Requests
      • Frei definierbare Scripte zum wandeln der Ein und Ausgangs-Werte
      • Automatisches Rückmeldung von Stati an Alexa-App
      • Gerätesuche ersetzen durch asyncrones senden an die Alexa-API
      • .... und was mir sonst noch einfällt

      Was bereits geht:

      • Webseite mit Configuration der Skills
      • Webseite mit Configuration von Geräten, implementiert sind bereits: Power,PowerLevel,Color,Brightness,ColorTemperature,Percentage,Mode,Range,Toggle,Thermostat und Input Controller.
      • Hinzufügen von Skills in der Alexa-App (inkl. abholen der access und refresh tokens über AuthO
      • die Alexa Lambda Funktion kommuniziert schon über https mit meinem 'Skill-Server'
      • Ich hole den Cookie vom Alexa2 Adapter und kann so die Alexa-API ansprechen
      • Ich kann von der Alexa API abholen welcher Skill welche Geräte hat.
      • Alexa kann schon sprechen
      • Mann kann schon aktiv Geräte zu den Skills hinzufügen / updaten oder löschen.

      was noch so fehlt:

      • LetsEncrypt im IO-Broker zum laufen kriegen (im Moment hab ich die Keys per Hand kopiert)
      • Behandlung aller Requests zum Schalten, User-Scripte implementieren....

      hört sich erstmal nicht mehr viel an, wird aber sicher noch eine Weile brauchen.

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @Marsx79
      Ich bin voll dabei, aber es ist noch ein harter Weg.
      Immerhin läuft das ganze schon als Adapter. ich werde Zwischenbericht geben.
      Und, natürlich stelle ich das dann zur Verfügung.

      Unbenannt.jpg

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @Christoph_12

      danach hatte ich auch vergeblich gesucht. mir ist nicht klar, warum Amazon bei Smarthome-Skills weder das angesprochen Gerät noch den Sprecher verrät,
      zumal es gerade hier sinvoll wäre. Wie sollte man sonst verhindern, das Fremde oder Kinder das Garagentor öffnen, oder die Heizung auf voll drehen. 😠

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @Christoph_12

      Hallo Christoph, ich habe das für meine Rollos so gemacht:

      {
                    "type": "AlexaInterface",
                    "interface": "Alexa.ModeController",
                    "instance": "kueche.rollo",
                    "version": "3",
                    "capabilityResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Rolll\u00E4den",
                            "locale": "de-DE"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "Rollladen",
                            "locale": "de-DE"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "Rollo",
                            "locale": "de-DE"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "Rollos",
                            "locale": "de-DE"
                          }
                        }
                      ]
                    },
                    "properties": {
                      "supported": [
                        {
                          "name": "mode"
                        }
                      ],
                      "proactivelyReported": false,
                      "retrievable": false,
                      "nonControllable": false
                    },
                    "configuration": {
                      "ordered": false,
                      "supportedModes": [
                        {
                          "value": "kueche.rollo.hoch",
                          "modeResources": {
                            "friendlyNames": [
                              {
                                "@type": "text",
                                "value": {
                                  "text": "hoch",
                                  "locale": "de-DE"
                                }
                              },
                              {
                                "@type": "text",
                                "value": {
                                  "text": "Auf",
                                  "locale": "de-DE"
                                }
                              }
                            ]
                          }
                        },
                        {
                          "value": "kueche.rollo.runter",
                          "modeResources": {
                            "friendlyNames": [
                              {
                                "@type": "text",
                                "value": {
                                  "text": "Runter",
                                  "locale": "de-DE"
                                }
                              },
                              {
                                "@type": "text",
                                "value": {
                                  "text": "zu",
                                  "locale": "de-DE"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
      
      

      sowohl mit der Sprachausgabe als auch der Ermittlung welche Alexa angesprochen wurde wird es ohne IOBroker schwer. Ich habe dafür den Alexa2 Adapter benutzt, welcher sich, wie ich glaube in die AlexaApp einklinkt.

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      Ich wollte noch einmal ein Update geben. Bin dabei den Device Generator als HTML/Javascript umzusetzen. Sieht schon ganz gut aus, und ich habe noch neue Ideen implementiert.

      new adg.png

      new adg2.png

      new adg3.png

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @Christoph_12

      Hallo Christoph,
      ein Kompletter Response für einen Power Controller muss so aussehen:
      (Die MessageId ist generiert)

      {
        "event": {
          "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover.Response",
            "payloadVersion": "3",
            "messageId": "11339ec1-6c30-45bb-a7bf-12e113ebfc7c" 
          },
          "payload": {
            "endpoints": [
              {
                "friendlyName": "hund",
                "endpointId": "eg_esstisch_lampe_1",
                "manufacturerName": "HM Switch",
                "description": "hund",
                "displayCategories": [
                  "SWITCH"
                ],
                "capabilities": [
                  {
                    "properties": {
                      "supported": [
                        {
                          "name": "powerState"
                        }
                      ],
                      "proactivelyReported": false,
                      "retrievable": false
                    },
                    "type": "AlexaInterface",
                    "interface": "Alexa.PowerController",
                    "version": "3"
                  }
                ]
              }
            ]
          }
        }
      }
      

      zu Deiner Frage mit den Rollos, ja mit ModeController kannst Du beliebig viele Kommandos angeben.

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @matit2000
      So super schön finde ich es noch nicht. Ich bin grad am forschen, wie es besser gehen könnte. Ich wollte das ganze in den ioBroker integrieren, aber dafür muss ich noch viel lernen.... vs-code, node.js, html, css, express, adapter...., und, und, und.
      für einen 56 Jährigen nicht mehr ganz so einfach 🙂

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @mech
      Danke für die freundlichen Worte.
      Ich bin aber jederzeit für Fragen offen, Ablenkung kann ich gut gebrauchen.

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @Marsx79
      Ja, ich arbeite weiter daran, zur Zeit habe ich aber ganz andere Sorgen.... Ein Todesfall in der Familie.

      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    • RE: Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

      @Marsx79 said in Alexa in Node Red ohne contrib-alexa-home oder Ähnliches:

      Ich hätte da aber noch zwei weitere Fragen:

      1. Hat schon jemand "Thermostat Regler" probiert? Die Alexa App findet zwar das Gerät aber wenn ich dann da drauf gehe sagt diese nur "Warte auf Verbindung..." und dann geht es nicht weiter.

      den Thermostat Regler habe ich noch nicht implementiert, ersteinmal könnte man sich mit den anderen Reglern behelfen, (Mode, Prozent, Helligkeit)

      1. Wenn ich eine dimmbare Lampe habe die keinen Datenpunkt für "an und aus" (also true und false) hat, sondern nur einen Datenpunkt für 0 - 99 (wobei 0 aus und 99 an ist) hat. Wie kann ich das machen? "Helligkeits Regler" funktioniert zwar für die Prozentangabe aber nicht für an/aus.

      Hier kannst Du z.B folgendes machen, Du erstellst das Gerät mit einem Helligkeits und einem power controller. Beim Power-Controller trägst Du in der Datenbank unter value: '0-99' ein
      diesen Wert können wir dann im Script abfragen und dementsprechend anders reagieren.

      Du müsstes also node 'Move vals' z.B. so ändern:

      //Set the output values to the given IO Broker variable
      
      switch (msg.FromSkill.payload.directive.header.namespace) {
        case "Alexa.PowerController":
          switch (msg.original_payload.value) {
            // field value in Database is '0-99' then use 0 as Off and 99 as ON 
            case "0-99":
              msg.value = 0;
              if (msg.FromSkill.payload.directive.header.name == "TurnOn") {
                msg.value = 99;
              }
              break;
            default:
              // The Powercontroler sends the value (TurnOn/TurnOff), database value is NULL
              msg.value = false;
              if (msg.FromSkill.payload.directive.header.name == "TurnOn") {
                msg.value = true;
              }
              break;
          }
          break;
      
        case "Alexa.ModeController":
          // Value comes from the database
          msg.value = msg.payload.value;
          msg.value = msg.original_payload.value;
          break;
      
        case "Alexa.ColorController":
          msg.value = HSVtoRGBHEX(
            msg.FromSkill.payload.directive.payload.color.hue,
            msg.FromSkill.payload.directive.payload.color.saturation,
            msg.FromSkill.payload.directive.payload.color.brightness
          );
          break;
      
        case "Alexa.BrightnessController":
          if (msg.FromSkill.payload.directive.header.name == "AdjustBrightness") {
            // value is in msg.FromSkill.payload.directive.payload.brightnessDelta
            msg.value =
              parseInt(msg.payload) +
              parseInt(msg.FromSkill.payload.directive.payload.brightnessDelta);
          } else {
            // value is in msg.FromSkill.payload.directive.payload.brightness
            msg.value = msg.FromSkill.payload.directive.payload.brightness;
          }
          break;
      }
      
      var newmsg2 = { payload: msg.value, topic: msg.topic };
      return [newmsg2];
      
      // Alexa Color.Controler input is HSB(HSV). We need RGB value (0xRRGGBB00)
      function HSVtoRGBHEX(h, s, v) {
        var r, g, b, i, f, p, q, t;
      
        h = h / 360;
      
        i = Math.floor(h * 6);
        f = h * 6 - i;
        p = v * (1 - s);
        q = v * (1 - f * s);
        t = v * (1 - (1 - f) * s);
      
        switch (i % 6) {
          case 0:
            r = v;
            g = t;
            b = p;
            break;
          case 1:
            r = q;
            g = v;
            b = p;
            break;
          case 2:
            r = p;
            g = v;
            b = t;
            break;
          case 3:
            r = p;
            g = q;
            b = v;
            break;
          case 4:
            r = t;
            g = p;
            b = v;
            break;
          case 5:
            r = v;
            g = p;
            b = q;
            break;
        }
        r = Math.round(r * 255);
        g = Math.round(g * 255);
        b = Math.round(b * 255);
      
        var rgb = (r << 16) + (g << 8) + b;
        var srgb = "000000" + (rgb.toString(16) + "00").toUpperCase();
        return srgb.slice(-8);
      }
      
      
      posted in Praktische Anwendungen (Showcase)
      Z
      zzippo
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo