Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • schuma
    antwortet
    Du musst in der Alexa App bei Geräte nach dem nicht reagierenden Gerät suchen (Lupe) wenn wer es findet, drauf drücken und dann oben rechts das Zahnrad. Da kann na es löschen.

    Einen Kommentar schreiben:


  • Volzor
    antwortet
    Hallo Andre,


    vielen dank erstmal für deine Antwort.
    ich hab es mit deinem Code probiert, dann kam folgendes Log

    PHP-Code:

      2025
    -11-23T21:57:08.892+01:00

    INIT_START Runtime Version
    nodejs:24.v25 Runtime Version ARNarn:aws:lambda:eu-west-1::runtime:9789c897924b8267853973afab7f065eaf98a441d27aa14bb62b2560df1ea5a0

      INIT_START Runtime Version
    nodejs:24.v25 Runtime Version ARNarn:aws:lambda:eu-west-1::runtime:9789c897924b8267853973afab7f065eaf98a441d27aa14bb62b2560df1ea5a0   2025-11-23T21:57:09.035+01:00

    2025
    -11-23T20:57:09.035Z ERROR (node:2WarningFailed to load the ES module: /var/task/index.jsMake sure to set "type""module" in the nearest package.json file or use the .mjs extension.

    (Use `
    node --trace-warnings ...to show where the warning was created)

      
    2025-11-23T20:57:09.035Z ERROR (node:2WarningFailed to load the ES module: /var/task/index.jsMake sure to set "type""module" in the nearest package.json file or use the .mjs extension. (Use `node --trace-warnings ...to show where the warning was created)   2025-11-23T21:57:09.038+01:00 2025-11-23T20:57:09.038Z ERROR Init Error {"errorType":"Runtime.UserCodeSyntaxError","errorMessage":"SyntaxError: Unexpected token 'export'","name":"Runtime.UserCodeSyntaxError","stack":["/var/task/index.js:1","export const handler = async(event) => {","^^^^^^","","SyntaxError: Unexpected token 'export'"," at wrapSafe (node:internal/modules/cjs/loader:1691:18)"," at Module._compile (node:internal/modules/cjs/loader:1734:20)"," at Object..js (node:internal/modules/cjs/loader:1893:10)"," at Module.load (node:internal/modules/cjs/loader:1480:32)"," at Module._load (node:internal/modules/cjs/loader:1299:12)"," at TracingChannel.traceSync (node:diagnostics_channel:328:14)"," at wrapModuleLoad (node:internal/modules/cjs/loader:244:24)"," at cjsLoader (node:internal/modules/esm/translators:342:5)"," at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:234:7)"," at ModuleJob.run (node:internal/modules/esm/module_job:377:25)"]}  ​ 
    kann das mit der Dateiendung .mjs zu tun haben ?
    Dann habe ich zurück gewechselt auf den generierten Code oben und habe die Items auf wenige Lampen reduziert, und siehe da
    er hat sie gefunden und ich kann sie Ansteuern 😍.
    Jetzt bin ich gerade dabei Stück für Stück meine Items zu suchen um die Fehlerhaften zu finden. Ich halte euch auf dem Laufenden.

    Kleines Update: Teilweise hat er auch keine Neuen Items erkannt weil die neuen genauso hießen wie die Alten(Payload2). Auf die altem außer die in Routinen oder Gruppen habe ich aber aktuell gar kein Zugriff mehr in der App darum kann ich sie erstmals nicht löschen. Kennt da jemand eine Alternative evtl über die Developper Seite?

    Viele Grüße
    Christian
    Zuletzt geändert von Volzor; 23.11.2025, 23:42.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo Volzor,

    probier mal bitte folgende Lambda-Funktion unter NodeJs 24, ich konnte das nicht final testen (nur aus der Lambda raus).
    Gerne Rückmeldung

    Code:
    export const handler = async(event) => {
    try {
      
        console.log("event", event);
      
        var myHeader = {
            'Content-Type': 'application/json',
            'Authorization': 'Basic ' + Buffer.from(process.env.SMARTHOME_AUTH, "utf-8").toString("base64"),
            'Content-Length': Buffer.byteLength(JSON.stringify(event))
          }
    
        var myUrl = "https://" + process.env.SMARTHOME_HOST + ":" + process.env.SMARTHOME_PORT + process.env.SMARTHOME_PATH
        console.log(myUrl)
        const response = await fetch(myUrl, {
          method: 'POST',
          headers : myHeader,
          body: JSON.stringify(event)
          
        });
        const data = await response.json();
        console.log(data);
     
      if (response.status == 200) {
        return {
          statusCode: response.statusCode,
          body: JSON.stringify(data),
        };
      }
      else
      {
        return {
          statusCode: response.statusCode,
          body: response.text()
        };
      }
      
    
    }
    catch (error) {
      console.error(error);
      return {
        statusCode: 500,
        body: JSON.stringify(error),
      };
    }
    }
    Viele Grüße
    Andre

    Einen Kommentar schreiben:


  • Volzor
    antwortet
    Hallo zusammen,

    ich habe es nach 5 Jahren jetzt doch nochmal gewagt auf Payload V3 umzustellen und hänge jetzt kurz vor dem Ziel. Zunächst habe ich versucht auf nodejs24.x umzustellen gab aber Fehler Jetzt habe ich den bisherigen nodejs24.x wieder verwendet Die neue Testroutine hat
    Code:
    version":"3"},{"type":"AlexaInterface","interface":"Alexa.EndpointHealth","version":"3","properties":{"supported":[{"name":"connectivity"}],"proactivelyReported":false,"retrievable":true}},{"type":"AlexaInterface","interface":"Alexa.RangeController","version":"3","properties":{"supported":[{"name":"rangeValue"}],"proactivelyReported":false,"retrievable":true},"instance":"cfg_rollo_west-alias1","capabilityResources":{"friendlyNames":[{"@type":"asset","value":{"assetId":"Alexa.Setting.Opening"}}]},"configuration":{"supportedRange":{"minimumValue":0,"maximumValue":100,"precision":1},"unitOfMeasure":"Alexa.Unit.Percent"},"semantics":{"actionMappings":[{"@type":"ActionsToDirective","actions":["Alexa.Actions.Close"],"directive":{"name":"SetRangeValue","payload":{"rangeValue":100}}},{"@type":"ActionsToDirective","actions":["Alexa.Actions.Open"],"directive":{"name":"SetRangeValue","payload":{"rangeValue":0}}},{"@type":"ActionsToDirective","actions":["Alexa.Actions.Lower"],"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":20,"rangeValueDeltaDefault":false}}},{"@type":"ActionsToDirective","actions":["Alexa.Actions.Raise"],"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":-20,"rangeValueDeltaDefault":false}}}],"stateMappings":[{"@type":"StatesToValue","states":["Alexa.States.Closed"],"value":0},{"@type":"StatesToRange","states":["Alexa.States.Open"],"range":{"minimumValue":1,"maximumValue":100}}]}}]},{"endpointId":"cfg_rollo_west-alias2","friendlyName":"Westrollos","description":"Rolllaeden West by SmartHomeNG","manufacturerName":"SmarthomeNG","displayCategories":["EXTERIOR_BLIND"],"cookie":{"extraDetail1":"config.beschattung.rollowest.pos"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa","version":"3"},{"type":"AlexaInterface","interface":"Alexa.EndpointHealth","version":"3","properties":{"supported":[{"name":"connectivity"}],"proactivelyReported":false,"retrievable":true}},{"type":"AlexaInterface","interface":"Alexa.RangeController","version":"3","properties":{"supported":[{"name":"rangeValue"}],"proactivelyReported":false,"retrievable":true},"instance":"cfg_rollo_west-alias2","capabilityResources":{"friendlyNames":[{"@type":"asset","value":{"assetId":"Alexa.Setting.Opening"}}]},"configuration":{"supportedRange":{"minimumValue":0,"maximumValue":100,"precision":1},"unitOfMeasure":"Alexa.Unit.Percent"},"semantics":{"actionMappings":[{"@type":"ActionsToDirective","actions":["Alexa.Actions.Close"],"directive":{"name":"SetRangeValue","payload":{"rangeValue":100}}},{"@type":"ActionsToDirective","actions":["Alexa.Actions.Open"],"directive":{"name":"SetRangeValue","payload":{"rangeValue":0}}},{"@type":"ActionsToDirective","actions":["Alexa.Actions.Lower"],"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":20,"rangeValueDeltaDefault":false}}},{"@type":"ActionsToDirective","actions":["Alexa.Actions.Raise"],"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":-20,"rangeValueDeltaDefault":false}}}],"stateMappings":[{"@type":"StatesToValue","states":["Alexa.States.Closed"],"value":0},{"@type":"StatesToRange","states":["Alexa.States.Open"],"range":{"minimumValue":1,"maximumValue":100}}]}}]},{"endpointId":"cfg_lamellen_west-alias1","friendlyName":"Westlamellen","description":"Lamellenverstellung West in Prozent by SmartHomeNG","manufacturerName":"SmarthomeNG","displayCategories":[],"cookie":{"extraDetail1":"config.beschattung.lamellenwest.blindpos"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa","version":"3"},{"type":"AlexaInterface","interface":"Alexa.EndpointHealth","version":"3","properties":{"supported":[{"name":"connectivity"}],"proactivelyReported":false,"retrievable":true}},{"type":"AlexaInterface","interface":"Alexa.RangeController","version":"3","properties":{"supported":[{"name":"rangeValue"}],"proactivelyReported":false,"retrievable":false}}]}]}}}
    END RequestId: 54292e62-776d-44f0-8e7e-2ba4ee6e46f7
    REPORT RequestId: 54292e62-776d-44f0-8e7e-2ba4ee6e46f7    Duration: 301.30 ms    Billed Duration: 302 ms    Memory Size: 512 MB    Max Memory Used: 61 MB    
    ​
    Daher scheint die Verbindung Lambda smarthome zu klappen, leider findet er keine neuen Geräte in der App gibt es da neuen Quellcode für die Lamda Funktion der alte lässt sich nämlich auch nicht mehr kompilieren

    Hat da jemand aktuell mal mit zu tun gehabt ?

    Kleines Update: Ich habe ChatGPT gebeten das alte Script auf Nodejs24.x umzubauen


    Code:
    const https = require('https');
    
    exports.handler = async (event) => {
    
      const data = JSON.stringify(event);
    
      const options = {
    
        hostname: process.env.SMARTHOME_HOST,
    
        port: process.env.SMARTHOME_PORT,
    
        path: process.env.SMARTHOME_PATH,
    
        method: 'POST',
    
        auth: process.env.SMARTHOME_AUTH,
    
        headers: {
    
          'Content-Type': 'application/json',
    
          'Content-Length': Buffer.byteLength(data)   // <-- korrigiert
    
        }
    
      };
    
      console.log("requesting", data);
    
      try {
    
        const responseData = await new Promise((resolve, reject) => {
    
          const req = https.request(options, (res) => {
    
            console.log(`HTTP ${res.statusCode}`);
    
            let body = '';
    
            res.setEncoding('utf8');
    
            res.on('data', (chunk) => {
    
              body += chunk;
    
            });
    
            res.on('end', () => {
    
              console.log("raw response:", body);
    
              resolve({ statusCode: res.statusCode, body });
    
            });
    
          });
    
          req.on('error', (err) => {
    
            console.error("request failed", err);
    
            reject(err);
    
          });
    
          req.write(data);
    
          req.end();
    
        });
    
        const parsed = JSON.parse(responseData.body);
    
        if (responseData.statusCode === 200) {
    
          console.info("OK", JSON.stringify(parsed));
    
          return parsed;
    
        } else {
    
          console.error("Failed", JSON.stringify(parsed));
    
          throw new Error("DependentServiceUnavailableError");
    
        }
    
      } catch (err) {
    
        console.error("Error:", err);
    
        throw err;
    
      }
    
    };
    Der hat dann folgendes Log geworfen , dh die Request von Alexa geht durch und die Verbindung zu Smarthome steht auch
    er kann das Ganze aber nicht verarbeiten sonst würden die neuen Geräte in Alexa angezeigt ....

    HTML-Code:
      [TD]2025-11-21T21:26:31.221+01:00[/TD]
      [TD]2025-11-21T20:26:31.221Z - INFO raw response: {"event": {"header": {"namespace": "Alexa.Discovery", "name": "Discover.Response", "payloadVersion": "3", "messageId": "60f05652d2014849bd07570aaf25722b"}, "payload": {"endpoints": [{"endpointId": "config_lueftung", "friendlyName": "L\u00fcftung", "description": "L\u00fcftungsturbo f\u00fcr 5 min by SmartHomeNG", "manufacturerName": "SmarthomeNG", "displayCategories": ["OTHER"], "cookie": {"extraDetail1": "config.HeizungLueftung.Lueftung"}, "capabilities": [{"type": "AlexaInterface", "interface": "Alexa", "version": "3"}, {"type": "AlexaInterface", "interface": "Alexa.EndpointHealth", "version": "3", "properties": {"supported": [{"name": "connectivity"}], "proactivelyReported": false, "retrievable": true}}, {"type": "AlexaInterface", "interface": "Alexa.PowerController", "version": "3", "properties": {"supported": [{"name": "powerState"}], "proactivelyReported": false, "retrievable": true}}]}, {"endpointId": "cfg_rollo_eg", "friendlyName": "Rolll\u00e4den Erdgeschoss", "description": "Rolllaeden EG in Prozent by SmartHomeNG", "manufacturerName": "SmarthomeNG", "displayCategories": ["EXTERIOR_BLIND"], "cookie": {"extraDetail1": "config.beschattung.rolloeg.pos"}, "capabilities": [{"type": "AlexaInterface", "interface": "Alexa", "version": "3"}, {"type": "AlexaInterface", "interface": "Alexa.EndpointHealth", "version": "3", "properties": {"supported": [{"name": "connectivity"}], "proactivelyReported": false, "retrievable": true}}, {"type": "AlexaInterface", "interface": "Alexa.RangeController", "version": "3", "properties": {"supported": [{"name": "rangeValue"}], "proactivelyReported": false, "retrievable": true}, "instance": "cfg_rollo_eg", "capabilityResources": {"friendlyNames": [{"@type": "asset", "value": {"assetId": "Alexa.Setting.Opening"}}]}, "configuration": {"supportedRange": {"minimumValue": 0, "maximumValue": 100, "precision": 1},[/TD]
    Viele Grüße Christian
    Zuletzt geändert von Volzor; 21.11.2025, 22:19.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo Jürgen,

    das alexa4p3-plugin kann bereits Payload Version 3 (dafür steht 4p3). Im Web-Interface des Plugins kannst du rechts oben sehen ob noch Geräte mit Payload V2 definiert sind (used actions .....). Es wird auch noch Payload V2 unterstützt.

    Ich meine der Skill in der AWS-Cloud muss auf V3 eingerichtet sein, bin aber nicht sicher, muss ich prüfen.

    Viele Grüße

    Andre

    Einen Kommentar schreiben:


  • Jürgen
    antwortet
    Hallo,

    hat das Auswirkungen für uns? Ich kann mich schwach erinnern, dass ich in den Amazon Settings mal einen Skill umgestellt habe...

    https://knx-user-forum.de/forum/%C3%...gek%C3%BCndigt

    Gruß Jürgen

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Bekomme ich auch jeden Monat. Ist für den Steuernachweis weil man ja ein Business Konto eröffnet hat. Da du ja aber nichts umsetzt, wird es immer bei Null bleiben;-)

    Einen Kommentar schreiben:


  • Jürgen
    antwortet
    Rechnung von Amazon

    Hallo,

    ich habe letzte Woche erstmals eine Rechnung von Amazon für das Cloud Geraffel bekommen: 0 Euro.
    Nun habe ich letzten Monat auch den Mail Hoster geändert und meine Filter Regeln waren alle weg.
    Sind die bisherigen Rechnungen im Spamschredder gelandet, oder ist das wirklich neu?

    Grundsätzlich müsste man ja mal die Kartendaten aktualisieren, hat das schon jemand gemacht?

    Gruß Jürgen

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Hallo, ich musste bei mir nach einem SSD Crash alles neu machen. Jetzt kommt Alexa irgendwie nicht mehr durch nginx. kann sich diese Fehlermeldung jemand erklären. Oder mir einen Ansatz sagen wo ich hier suchen muss?

    Code:
    2025/02/15 13:19:02 [error] 691#691: *29 access forbidden by rule, client: 34.XXX.XXX.XXX, server: smarthomeng, request: "POST /alexa/ HTTP/1.1", host>
    Feb 15 13:19:02 SmartHomeNG nginx[691]: 34.XXX.XXX.XXX forwarded for - - Request: "POST /alexa/ HTTP/1.1" - Status: 403 - Bytes sent: 146 Referrer: "-" - User Agent: "-"
    ​
    Grüße, Marc

    EDIT: Habs noch hinbekommen... in der https.conf muss bei Alexa auch das basic auth einkommentiert werden.

    Code:
    auth_basic "Restricted Area: Alexa";
    auth_basic_user_file /etc/nginx/.alexa;​
    ​​
    Zuletzt geändert von schuma; 15.02.2025, 13:56.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hehe
    Nee, das Geld geht an myonlineportal
    Die haben dafür auch nen super Service.

    Einen Kommentar schreiben:


  • Jürgen
    antwortet
    Zitat von henfri Beitrag anzeigen
    Hallo,

    ja, ich kann dazu gerne Fragen beantworten.
    Kostet auch, aber sehr kleines Geld.

    Gruß,
    Hendrik
    Hallo Hendrik,

    Was nimmst Du denn für die Antworten?

    Gruß Jürgen

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    ja, ich kann dazu gerne Fragen beantworten.
    Kostet auch, aber sehr kleines Geld.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi Rene,

    die VPN-Lösung in der AWS kann soweit ich weiß kein IpV6. Auf der Seite (https://docs.aws.amazon.com/vpn/late...n/VPC_VPN.html) steht :
    Ich hatte mal einen Versuch mit einem "eigenen Server" in der AWS-Welt (EC2-Instance) gemacht, das ging kostet aber monatlich

    AWS-VPN-Limitations.png

    Ich habe mich damit auch schon beschäftigt da eventuell ein Wechsel zu Glasfaser mit Dual-Stack-Lite bevorsteht. Eine Möglichkeit könnte Cloudflare sein, Henfri hatte das
    in der Vergangenheit schon mittels "Portmapper" gelöst. An Details kann ich mich aber nicht mehr erinnern. (https://myonlineportal.net/)​

    Viele Grüße
    Andre

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hat jemand das Plugin bzw die Lambdafunktion schon via VPN angebunden? Mit unserem IPv6 Glasfaser Anschluß will ich das alles nicht mehr so richtig, vielleicht gibt es ja wirklich eine sichere (?) Lösung via VPN? Also wie hier auch gefragt: https://stackoverflow.com/questions/...tion-to-my-vpn

    Einen Kommentar schreiben:


  • Jürgen
    antwortet
    Hallo...

    "xyz reagiert nicht"

    Kennt Ihr das?
    Grundsätzlich ist die Funktion von manchen Items noch da, viele, die aber bisher funktionierten, sind plötzlich offline.
    Ich hab noch nicht weiter nach der Ursache gesucht, ist aber erstmal komisch...

    Edith hatte mal Zeit sich zu kümmern: SHNG reagierte nicht mehr, nach einem Stromausfall nicht mehr richtig gestartet.
    Tut wieder.

    Gruß Jürgen
    Zuletzt geändert von Jürgen; 15.11.2023, 11:15.

    Einen Kommentar schreiben:

Lädt...
X