Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon-Echo Logikbaustein

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

  • NilsS
    antwortet
    Hightech Nur so zur Info. String zu importieren ist Ressourcenverschwendung.

    Wenn ein objekt Typ String ist, wie in deinem Fall EN1 dann enthält es bereits die Stringfunktionen.

    Also EN[1].replace(‚1‘,‘erster‘)

    Einen Kommentar schreiben:


  • Taxus
    antwortet
    Genau das selbe hier.

    Einen Kommentar schreiben:


  • chris_s
    antwortet
    Die 1-jährige Testperiode für AWS ist ja vorbei. Welche Kosten laufen bei auch so auf?

    Mit sehr wenig Nutzung stehen bei mir doch 0,02$ für Datentransfer auf der Rechnung

    Gruß
    Chris

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Tipp für die korrekte Aussprache von Datumswerten oder Zahlen mit Punkt

    Hallo Freunde der sprechenden Mitbewohnerin ;-)

    Nachdem ich mit Werners phänomenalen Bausteinen die grundlegende Steuerung zusammengebaut hab, hab ich mich mal drangemacht, ein paar weitere Statusberichte zusammenzubauen. In einem hatte ich dann Datumswerte wie "26.04." drin, die Alexa leider als "zwei sechs Punkt null vier Punkt" ausspricht - doof :-(

    Ich hab dann einfach den Baustein 19903 hier aus dem Download genommen, der eigentlich bei Webabfragen Zeichen, die wg. eines nicht HS-kompatiblen Zeichensatzes komisch aussehen, umsetzt - also sowas wie "&uuml" in ein "ü" verwandelt. Den kompletten Berechnungstext hab ich dann mit diesem Abschnitt ersetzt:

    5012|0|"EN[1]"|"__import__('string').replace(EN[1],'01.','erster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'02.','zweiter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'03.','dritter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'04.','vierter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'05.','fünfter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'06.','sechster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'07.','siebter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'08.','achter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'09.','neunter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'10.','zehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'11.','elfter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'12.','zwölfter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'13.','dreizehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'14.','vierzehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'15.','fünfzehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'16.','sechzehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'17.','siebzehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'18.','achtzehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'19.','neunzehnter')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'20.','zwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'21.','einundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'22.','zweiundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'23.','dreiundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'24.','vierundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'25.','fünfundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'26.','sechsundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'27.','siebenundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'28.','achtundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'29.','neunundzwanzigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'30.','dreissigster')"|""|0|0|1|0
    5012|0|"EN[1]"|"__import__('string').replace(SN[1],'31.','einunddreissigster')"|""|1|0|0|0
    Bevor ich den zusammengebauten Text auf das finale Objekt für Alexa schreibe, hab ich diesen Baustein dann in der Logik davor gehängt und Alexa liest das jetzt schön vor.

    Vielleicht hat ja noch wer sowas in seinen Statusberichten und es hilft.....

    Viele Grüße

    Olaf

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Hallo Werner!

    Du bist der Beste, danke!

    Grüße

    Olaf

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Hallo Olaf,

    die Meldung mit dem Zertifikat bedeutet, dass der Zugriff auf deine JSON-Konfiguration aus deinem lokalen Netz ohne SSL-Verschlüsselung abläuft.
    Ich wollte mir diesen Punkt eigentlich noch offen halten, aber die Notwendigkeit aus dem eigenen Netz nur per SSL auf JSON-Konfiguration zugreifen zu können, werde ich wohl doch nicht weiter verfolgen.

    Die Verbindung von/zu Alexa selbst, läuft in Abhängigkeit der HomeServer Firmware bei 4.2-4.5 mit SSL/TLS1.0 und ab Firmware 4.6 mit SSL/TLS1.2 verschlüsselt ab.

    Zur Abfrage des Status eines Fenster kannst du z.B. folgende Formulierungen verwenden:

    Alexa frage My Home, ist das Fenster im Katzenzimmer geöffnet/geschlossen/gekippt
    Alexa frage My Home, ob das Fenster im Katzenzimmer geöffnet/geschlossen/gekippt ist
    Alexa frage My Home, wie ist das Fenster im Katzenzimmer


    Gruß
    Werner

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Hallo!

    So, der Skill fliegt :-)

    Jetzt aber noch 2 Punkte:
    - im Log sagt er mir, dass er das Zertifikat nicht gefunden hat und auf http umstellt... Was tun?
    - wie fragt man den Status der Fenster ab? Eingetragen hab ich in der Konfig jetzt:

    {"name":"Fenster", "value":"114/1/10", "unit":"#doorWindow2State", "aliases":["Fensters Katzenzimmer","Fensterstatus Katzenzimmer"]},

    Mapping hab ich natürlich für geschlossen, gekippt, offen eingetragen!

    Grüße

    Olaf

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Hallo Olaf,

    Ok, wenn ich also mit der gleichen Logik an Eingang und Ausgang arbeiten will, muss KNX konform = 1 sein?
    Ja

    Wo stellt man das denn ein? Hab ich schon wieder was überlesen?
    Du kannst beim Custom Skill per Sprachkommando einem Echo (bzw. allgemein einem Alexa fähigem Gerät, welches einen Device-ID liefert) einem Raum zuordnen.
    Wird bei der Steuerung/Abfrage eines Geräts/Objekts kein Raumname angegeben, so wird (falls das Gerät nicht raumübergreifend definiert ist) das Gerät in dem für den Echo definierten Raum gesucht.

    Die aktuell hinterlegten Formulierungen hierfür lauten (am Beispiel Büro):

    Alexa sage My Home, du bist im Büro aufgestellt.
    Alexa sage My Home, dass du im Büro aufgestellt bist.
    Alexa sage My Home, du stehst im Büro.
    Alexa sage My Home, dass du im Büro stehst.
    Alexa sage My Home, du bist im Büro.
    Alexa sage My Home, dass du im Büro bist.
    Alexa sage My Home, dieser Echo steht im Büro.
    Alexa sage My Home, dass dieser Echo im Büro steht.
    Alexa sage My Home, dieser Echo ist im Büro aufgestellt.
    Alexa sage My Home, dass dieser Echo im Büro aufgestellt ist.


    Alexa sollte dann mit "Ich habe für diesen Echo den Raum Büro zugeordnet" antworten.

    So kann man z.B. erreichen, dass für das Kommando "Alexa, sage My Home schalte das Licht ein" das Licht im jeweiligen Raum eingeschaltet wird.

    Gruß Werner

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Zitat von wernerL Beitrag anzeigen
    1) die Definition des Mappings eines beliebigen Integer-Wertes auf den entsprechenden Text habe ich aus der Lambda-Funktion in die JSON-Konfiguration ausgelagert.
    Die zu verwendende Mapping-Tabelle wird über das JSON-Attribut "unit":"#NameDerZuVerwendendeMappingTabellle" angebunden.
    Beispiel:
    Ah, doch zu lange davor gesessen - genau das Beispiel mit dem Fensterstatus hast Du ja bei Unit als Beispiel drin! Nur unter Unit hatte ich es halt nicht vermutet.... wird heute Abend ausprobiert.

    Zitat von wernerL Beitrag anzeigen
    2) Der Raum-Subbaustein erwartet nachfolgende Werte am Eingang RTR-Status (Status Betriebsmodus). Die Raumtemperaturregler-Betriebsart wird dann bei der Abfrage des Raum-Statusbericht verwendet:

    RTR Status (wenn Eingang E5 RTR-Status KNX Konform=1)
    1 => Komfort
    2 => Standby
    3 => Nacht
    4 => Frost-/Hitzeschutz
    [...]
    Der Ausgang A2 RTR-Umschaltung (Betriebsmodusumschaltung) sendet (analog zum Quadclient) jedoch immer KNX-Konform.
    Ok, wenn ich also mit der gleichen Logik an Eingang und Ausgang arbeiten will, muss KNX konform = 1 sein?

    Zitat von wernerL Beitrag anzeigen
    Ich kenne den Betriebsmodus (Komfort, Standby, ...) eigentlich nur bei den Heizungsregler (Raumthermostat) und nicht bei den Aktoren.
    Ja, bei den meisten Herstellern liegt der Regler im Taster, bei MDT ist im Taster nur ein Tempsensor und der Regler im Heizungsaktor.

    Zitat von wernerL Beitrag anzeigen
    Die Formulierungen ohne den Raumnamen "Büro" können verwendet werden, wenn für den entsprechenden "Echo" bereits der Raum "Büro" als Default zugeordnet wurde.
    Wo stellt man das denn ein? Hab ich schon wieder was überlesen?

    Grüße

    Olaf

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Guten Morgen Olaf,

    zu deinen Fragen:
    1) die Definition des Mappings eines beliebigen Integer-Wertes auf den entsprechenden Text habe ich aus der Lambda-Funktion in die JSON-Konfiguration ausgelagert.
    Die zu verwendende Mapping-Tabelle wird über das JSON-Attribut "unit":"#NameDerZuVerwendendeMappingTabellle" angebunden.
    Beispiel:
    Code:
    {
      "devices": [
        {"room":"Wellness", "control":"X/Y/Z", "appliances":[
          ...
          {"name":"Fenster", "value":"1/2/3", "unit":"#doorWindow2State"},
          {"name":"Tauchbecken", "value":"1/2/4", "unit":"#tauchbeckenStatus"},
          ...
        ]}
      ],
      "mappings" : {
        "#doorWindow2State": {
          "0": "geschlossen",
          "1": "offen",
          "2": "gekippt"
        },
        "#tauchbeckenStatus": {
          "0": "leer",
          "1": "voll"
        },
        ...
      },
      ...
    }
    2) Der Raum-Subbaustein erwartet nachfolgende Werte am Eingang RTR-Status (Status Betriebsmodus). Die Raumtemperaturregler-Betriebsart wird dann bei der Abfrage des Raum-Statusbericht verwendet:

    RTR Status (wenn Eingang E5 RTR-Status KNX Konform=1)
    1 => Komfort
    2 => Standby
    3 => Nacht
    4 => Frost-/Hitzeschutz

    RTR Status (wenn Eingang E5 RTR-Status KNX Konform=0)
    1 => Komfort
    2 => Nacht
    3 => Standby
    4 => Frost-/Hitzeschutz

    Der Ausgang A2 RTR-Umschaltung (Betriebsmodusumschaltung) sendet (analog zum Quadclient) jedoch immer KNX-Konform.

    Ich kenne den Betriebsmodus (Komfort, Standby, ...) eigentlich nur bei den Heizungsregler (Raumthermostat) und nicht bei den Aktoren.

    Wichtig: als Datentyp für das KO-Objekt, welches an A2 RTR-Umschaltung angebunden ist, darf nicht "8-Bit RTR Status" sondern muss "8-Bit 0..255" gewählt werden.
    Falls die Umschaltung im KNX-Regler über mehrere 1-bit Eingänge erfolgt, muss noch eine entsprechende Logik nachgeschaltet werden.

    3). Folgende Formulierungen sind aktuell zur Betriebsmodusumschaltung für Alexa hinterlegt:

    Beispiele für den Raum Büro:

    Stelle das Thermostat auf Komfort
    Stelle im Büro das Thermostat auf Komfort
    Stelle das Thermostat im Büro auf Komfort

    Stelle den Temperaturregler auf Komfort
    Stelle im Büro den Temperaturregler auf Komfort
    Stelle den Temperaturregler im Büro auf Komfort

    Stelle den Regler auf Komfort
    Stelle im Büro den Regler auf Komfort
    Stelle den Regler im Büro auf Komfort

    Stelle die Betriebsart auf Komfort
    Stelle im Büro die Betriebsart auf Komfort
    Stelle die Betriebsart im Büro auf Komfort

    Stelle die Regler Betriebsart auf Komfort
    Stelle im Büro die Regler Betriebsart auf Komfort
    Stelle die Regler Betriebsart im Büro auf Komfort


    Die Formulierungen ohne den Raumnamen "Büro" können verwendet werden, wenn für den entsprechenden "Echo" bereits der Raum "Büro" als Default zugeordnet wurde. Als Betriebsart kann entsprechend "Komfort", "Standby", "Nacht", "Frostschutz" verwendet werden.

    Viele Grüße
    Werner

    Einen Kommentar schreiben:


  • Hightech
    antwortet
    Guten Morgen!

    So, jetzt hab ich mich am Wochenende mal ein bisschen mit dem (kommerziellen) Alexa-Baustein beschäftigt und nun folgende Fragen:
    • Gibt es im kommerziellen Baustein den GetDoorWindowState nicht mehr? Auf der Internetseite ist als Mappingbeispiel noch genau der für den Fensterstatus (gekippt/offen/geschlossen) als Beispiel angegeben... hat jemand dann noch mal ein Konfigurationsbeispiel dafür?
    • Der Raum-Subbaustein hat als Eingang den RTR-Status - in welchem Format wird der erwartet? Mein Heizungsaktor liefert Werte wie 33,34,36 für den Modus zurück - kann ich die direkt dort anlegen und über ein Mapping dann auf die Texte umsetzen?
    • Wie schalte ich den RTR-Status um? Wie ist das Kommando?
    Grüße

    Olaf

    Einen Kommentar schreiben:


  • boardman
    antwortet
    Thema erledigt, ich habe Hotstepper erreichtund er mat mir ne neue Version mit Parameter gebastelt ... sehr Geil!
    siehe unter -> Echo <-> HS Bridge ohne zusätzlichen Internettraffic

    Einen Kommentar schreiben:


  • boardman
    antwortet
    Oh sorry Werner, das war wohl gestern zu spät für mich um was vernünftiges zu posten... Dein Baustein ist gut dokumentiert und werkelt schön vor sich hin...

    Nein die Frage bezog sich auf das HUE Plugin für den PI von hotstepper, ich hatte Hoffnung das die user auch hier mitlesen... ich mus mal suchen wie ich im Git Hub Fragen stellen kann...

    Uwe

    Einen Kommentar schreiben:


  • wernerL
    antwortet
    Hallo Uwe,

    welchen Port der im Logikbaustein integrierte HTTP-Server verwendet, kann über den Eingang E2 konfiguriert werden.
    Allerdings ist der Baustein nicht auf einem Raspberry PI sondern nur unter dem Gira HS/FS lauffähig.
    Oder habe ich deine Frage falsch verstanden?

    Gruß Werner

    Einen Kommentar schreiben:


  • boardman
    antwortet
    Hallo,

    kann man eien anderen Port <> 4711 nutzen? ich möchte auf dem selben PI das PI Hole laufen lassen das auch den Port benötigt...
    im FHEM Forum habe ich gelesn das alexa nicht so wählerisch sein soll was den Port betrifft...

    Uwe

    Einen Kommentar schreiben:

Lädt...
X