Amazon Echo mit der Zipato API

Amazon Echo mit der Zipato API

 

Da ich vor kurzem auch ein Amazon Echo Dot bekommen habe, wollte ich ich ein bisschen mit meinem SmartHome spielen…..aber ich bin faul….und hatte kein Bock virtuelle Geräte und Regeln dafür anzulegen….

Also habe ich mal wieder meinem Kumpel Gregor eingespannt…wir haben ein wenig nachgedacht und er hat dann was gebastelt!! Danke Gregor!!!

Das ganze funktioniert mit der HA Bridge, aber ohne Regeln und Klimbim!
Es geht einfach und direkt über die Zipato API.

Wir brauchen als Grundlage wieder einen Server auf dem die HA Bridge läuft.
Bei mir ist es ein Raspberry.

Anleitung HA Bridge:

Die HA Bridge bekommt ihr so auf den Raspberry: https://github.com/bwssytems/ha-bridge
Dort zum Punkt „Automation on Linux systems“ gehen und einfach alles nachspielen…..

Sollte ihr alles Richtig gemacht haben, dann sollte ich im Browser http://IP:81 eingeben und die HA Bridge sehen:

Punkt 1 und 2 werden natürlich fehlen…..
Die Version die ich installiert habe ist Version 4.1.4

 

Das Alexa Script installieren:

Jetzt brauchen wir noch eine Schnittstelle zur ZipaBox oder dem ZipaTile.
Loggt euch bitte wieder per SSH auf dem Raspberry ein und gebt folgendes ein:

sudo apt-get install apache2
sudo a2enmod cgi
sudo service apache2 restart
sudo apt-get install python-pycurl

Damit installiert ihr einen Webserver auf dem Raspberry um nachher das Script abzurufen.

Jetzt brauchen wir noch das eigentlich Script, und das bekommt ihr so:

cd /tmp

wget http://zipabox.de/wp-content/uploads/2017/02/Echo.zip

unzip Echo.zip

 

Ihr habt jetzt 2 Dateien mehr im Verzeichnis:

Zipatoapi.py
alexa_skill_workaround.py

 

Öffnet jetzt die Datei alexa_skill_workaround.py mit einem Editor

vi alexa_skill_workaround.py

 

In der Datei seht  ihr 2 Punkte an der denen ihr noch eure Zipato Zugangsdaten eingetragen müsst:

### my.zipato.com Login Credentials
login = "XXXXXX"
password = "XXXXX"
###

Unter Login tragt ihr die bei Zipato registrierte Email Adresse und bei Passwort dann natürlich das Passwort ein innerhalb der Anführungszeichen ein.

VI ist der Editor. Hier geht ihr mit den Cursor Tasten zum gewünschten Feld.
Dort drückt ihr die Taste i und könnte dann die Daten eintragen.
Wenn ihr fertig seid Taste ESC drücken dann Doppelpunkt wq und Enter und alles ist gespeichert.

 

Danach müssten die Dateien noch in das korrekte Verzeichnis kopiert werden:

cd /tmp
mv Zipatoapi.py /usr/lib/cgi-bin
mv alexa_skill_workaround.py /usr/lib/cgi-bin

Danach müssen wir noch die Dateirechte vergeben:

cd /usr/lib/
sudo chown -R www-data:www-data cgi-bin/
cd cgi-bin/
sudo chmod 700 Zipatoapi.py
sudo chmod 700 alexa_skill_workaround.py

 

Jetzt ist alles auf dem Raspberry vorbereitet und wir müssen uns die UUID für die Geräte raussuchen.
Wir können das genau wie in dieser Anleitung machen: http://zipabox.de/zipabox-mit-amazon-echo-steuern/

Ich habe aber eine bessere Möglichkeit gefunden alle UUIDs alle schaltbaren Geräte rauszusuchen:

 

Zipato API

Loggt euch in das Control Center unter my.zipato.com ein.

Da der Link Alexa aus der API verschwunden ist, wird es leider nicht mehr wie beschrieben funktionieren.
Aber der Lars hat einen Link gepostet, mit dem es trotzdem funktionieret die UUIDs schnell per API zu ziehen:

https://my.zipato.com/zipato-web/v2/alexa/discovery

Dann könnte ihr jetzt bei Schritt:  Geräte der HA Bridge hinzufügen

weitermachen.


Oben seht ihr den Punkt API(links):

 

Klickt drauf und es öffnet sich ein neues Fenster:

 

Dort seht ihr den Punkt Alexa, wieder draufklicken:
Dort seht ihr den Punkt /alexa/discovery

Auf /alexa/discovery klicken

Unten auf Try it out! klicken…und ZACK bekommt ihr alle Geräte die ihr schalten angezeigt.
So sieht das ganze dann für ein Gerät aus:

Und aus diesen Schnipseln brauchen wir die „turnUuid“

 

Geräte der HA Bridge hinzufügen

 

Wenn wir die haben gehen wir jetzt auf HA Bridge.

Dort angekommen klickt ihr auf Add/Edit

 

Unter dem Punkt Namen gebt ihr den Namen ein den Alexa später hören möchte.
Device Typ: Custom
Map Type: HTTP

On Items: HTTP Device
Target Item: http://IPvomRaspberry/cgi-bin/alexa_skill_workaround.py?uuid=XXXX&state=true
Http Verb: POST
Danach auf ADD klicken!

Off Items: HTTP Device
Target Item: http://IPvomRaspberry/cgi-bin/alexa_skill_workaround.py?uuid=XXXX&state=false
Http Verb: POST

XXXX: Das ist die UUID die wir aus der Zipato API kopiert haben.

Danach auf ADD klicken!

 

Dann oben auf „Update Bridge Device“ klicken.

Ihr habt jetzt ein Gerät angelegt und könnt es direkt testen indem ihr auf Test On/Test Off klickt.

Alexa könnt ihr hier kaufen: KLICK & KLICK

Es kann sein das ich etwas vergessen habe oder sich der Fehlerteufel eingeschlichen hat….bitte in die Kommentare damit.

 

Viel Spaß und Happy gefrickel 😀

49 thoughts on “Amazon Echo mit der Zipato API”

  1. Thorsten sagt:

    Da scheint was nicht zu stimmen

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

    More information about this error may be available in the server error log.

  2. Thorsten sagt:

    OK, Fehler gefunden, auf einem nackten Rasperry fehlen noch ein paar Python Module, diese müssen noch nachinstalliert werden.

    sudo apt-get install python-pycurl

    1. derHelle derHelle sagt:

      Hi Thorsten,

      danke für die Info. Hab den Beitrag mal erweitert.

      Gruß Helle

  3. TechBen sagt:

    Hallo!
    Ich habe das ganze auch mit HA Bridge gelöst, allerdings mit virtuellen Schaltern und Regeln (auf diese Möglichkeit wird ja eingangs hingewiesen). Hier nur noch mal der Hinweis, es klappt halt auch damit zuverlässig: Einfach einen virtuellen Sensor erstellen, eine Schalt-Regel dazu bauen und die entsprechende URL in HA Bridge eintragen.
    Das hat den Vorteil, dass man analog auch aus der APP heraus schalten kann und den Status sieht.

    Grüße

    1. derHelle derHelle sagt:

      Zum schalten hab ich doch eh die App 😉
      Aber wenn es initial aufgebaut ist, kannst du schneller Geräte hinzufügen und misst nicht immer Regeln und Schalter hinzufügen die dann die Box unnötig belasten. Und es gibt keine Probleme mit dem Status.

      Gruss Helle

  4. HP sagt:

    Bei mir sehe ich im API den Eintrag alexa nicht. Was mache ich falsch?

    Viele Grüsse
    HP

  5. Athensboy sagt:

    Hey Leute
    Auf dem Zipatile ist auch alexa in der API zu finden.
    Könnte keiner von euch das Zipatile zum laufen bringen, so das es direkt da als Echo drauf läuft?
    Mic und Lautsprecher hat ja das Zipatile.
    Ich denke mal da muss nur noch was richtig umgeschrieben werden dort in der API

  6. Lars Deutsch sagt:

    Hallo,

    ich bekomme leider eine Fehlermeldung, das er meinen Benutzer nicht kennen würde – der geht aber mit dem angegebenen Passwort bei my.zipato.com …

    {u’nonce‘: u’FOLneToiRwwnOwPf‘, u’jsessionid‘: u’504FFF4B26C80A3564B9C921A4745CC1-n1.frontend2′, u’success‘: False, u’error‘: u’User xxxx not found or wrong password‘} 84a212d6-e488-4b9b-9615-0fd1a1f623f3 false

    Ideen ?

    Danke,
    Lars

    1. derHelle derHelle sagt:

      Hi Lars,

      Das hört sich nach einem Problem mit den Dateirechten an.

      Gruss Helle

  7. Lars Deutsch sagt:

    Hallo,

    im webroot oder wo ? Dort gehört alles dem http user und Rechte sind auf 775 …

    Grüße,
    Lars

    1. derHelle derHelle sagt:

      Hi,

      Die Dateien kommen ja in das cgi-bin Verzeichniss. Da muss alles dem http User mit den gleichen Rechten gehören.
      Die Userdaten müssen in Anführungszeichen stehen…bitte nicht vergessen.

      Gruß Helle

  8. Lars Deutsch sagt:

    Hallo,

    Ich habe das falsch beschrieben. Die Dateien sind mit den richtigen Rechten im web root (ich nutze eine Synology und habe es so konfiguriert, das .py Dateien mit entsprechendem shell header ausgeführt werden.) Das Python script wird auch ausgeführt:

    Aufruf URL (uuid ist eine zwave Schaltsteckdose, Script habe ich umbenannt, war zu faul zum Tippen):
    http://192.168.2.5/asw.py?uuid=84a212d6-e488-4b9b-9615-0fd1a1f623f3&state=false

    Darauf kommt diese Antwort im Browser:
    {u’nonce‘: u’BGHHcrxYcObLXYKu‘, u’jsessionid‘: u’08DE4538B73ADDC1775B49A80868855E-n1.frontend5′, u’success‘: False, u’error‘: u’User deutsch.lars@gmail.com not found or wrong password‘} 84a212d6-e488-4b9b-9615-0fd1a1f623f3 false

    Und das steht im Apache Log:

    2017-02-27T17:42:25+01:00 DiskStation > PUT /zipato-web/v2/attributes/84a212d6-e488-4b9b-9615-0fd1a1f623f3/value HTTP/1.1
    2017-02-27T17:42:25+01:00 DiskStation Host: my.zipato.com
    2017-02-27T17:42:25+01:00 DiskStation User-Agent: PycURL/7.19.5.1 libcurl/7.51.0 OpenSSL/1.0.2k zlib/1.2.8 c-ares/1.12.0 libssh2/1.7.0
    2017-02-27T17:42:25+01:00 DiskStation Accept: application/json
    2017-02-27T17:42:25+01:00 DiskStation Content-Type: application/json
    2017-02-27T17:42:25+01:00 DiskStation Content-Length: 18
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: < HTTP/1.1 401 Unauthorized
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: < Date: Mon, 27 Feb 2017 16:42:25 GMT
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: < Set-Cookie: JSESSIONID=F25005D7978BCC8264E4E22F2957EB1A-n1.frontend5; Path=/zipato-web/; Secure; HttpOnly
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: < Content-Type: text/html;charset=utf-8
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: < Content-Language: en
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: < Content-Length: 975
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: < Connection: close
    2017-02-27T17:42:25+01:00 DiskStation syslog-ng[4301]: Error processing log message: <

    Der Zipato Server gibt mir die Fehlermeldung zurück, nicht der lokale Apache. Mir ist nicht ganz klar was das mit den Rechten in meinem web root zu tun hat …

    Danke,
    Lars

    1. derHelle derHelle sagt:

      Hi Lars,

      Das haben Gregor und ich so beobachtet…wenn die nicht passen , bekommt man eine Fehlermeldung von der API. Du könntest mal 777 als Rechte versuchen.
      Kannst aber noch einen Screenshot vom Verzeichniss machen.

      Gruß Helle

  9. ldeutsch sagt:

    Screenshot habe ich, wie lade ich den hoch ?

  10. derHelle derHelle sagt:

    Hi,

    am besten bei einem kostenlosen Bilder Upload Dienst hochladen und den Link hier einstellen.

    Gruß Helle

    1. derHelle derHelle sagt:

      Hi,

      das Verzeichnis web1 gehört noch root. Das muss auch http gehören, da der http 2 Dateien speichert um sich einen Login Token zu bauen.

      Gruß Helle

  11. ldeutsch sagt:

    Hallo,

    habe ich geändert, gleiches Ergebnis. Jedoch frage ich mich noch immer, wieso der Apache Server so eine Fehlermeldung werfen soll – die Meldung scheint mir vom Zipato Server zu kommen. Wenn es ein lokales Problem wäre (Rechte fehlen etc.) wäre da ein Eintrag im Apache Log.

    Kann es mit der Art und Weise zu tun haben, wie der Hashkey über das Passwort gebildet wird ?

    Grüße,
    Lars

    1. derHelle derHelle sagt:

      Hi Lars,

      die Dateirechte haben etwas damit zu tun ob der Apache Dateien anlegen darf.
      Es werden 2 Dateien angelegt:
      cookie.txt & Zipatoapi.pyc.
      Wenn der Apache diese Dateien nicht anlegen kann, kann er nicht den erforderlichen Token bilden um sich zu Authentifizieren.

      Gruß Helle

  12. ldeutsch sagt:

    Hallo,

    Du hattest Recht, nun geht es 🙂 Danke !

    Grüße,
    Lars

    1. gregor sagt:

      Oh da war ich eine Minute zu spät mit meinem Post:-P. Okay schön zu hören, dass es nun geht und viel Spass damit.

      VG,
      Gregor

  13. gregor sagt:

    Hallo Lars,

    kannst Du nochmal ein Screenshot posten mit dem folgenden Befehl:

    ls -ld /volumes1/web

    Du kannst noch folgendes probieren, um es nur mal zu testen:

    chmod -R 777 /volumes1/web

    Wenn das immer noch nicht tut, dann benenne dein Skript um von aws.py nach aws.cgi und teste es nochmal.

    Wie es Helmut schon geschrieben hat, das Skript „aws.py“ Authentifiziert sich gegen Zipato um eine SessionID zu erzeugen in der cookie.txt Datei. Mit der SessionID aus der cookie.txt kann die Zipatoapi.py Library nun gegen die API sprechen und die enstprechenden API Calls absetzen und muss sich nicht jedes mal neu Authentifizieren. Wenn der User bzw. Passwort falsch ist, dann kann ein Problem sein, dass der Apache User die Datei nicht erstellen darf in dem Verzeichnis. Ich sehe aber auch einiges an Foren Beiträge die beachtet werden müssen, wenn man ein CGI Skript über die Synology laufen lassen will.

    VG,
    Gregor

  14. ldeutsch sagt:

    Ach ja: das ist die URL zum lesen der Devices für Alexa. Der Alexa Eintrag ist aus der Doku verschwunden (zumindestens bei mir).

    Erst über my.zipato anmelden, dann die URL aufrufen:

    https://my.zipato.com/zipato-web/v2/alexa/discovery

    Grüße,
    Lars

    1. gregor sagt:

      Du hast recht, bei mir ist mittlerweile die Alexa API auch verschwunden. Hmm ist das ein gutes Zeichen?!? Oder sind da draussen Leute die die Umsetzung schneller hinbekommen als die Zipato Leute selbst via API*Aluhut*:).

  15. ldeutsch sagt:

    LOL … also an der Technik kann es kaum liegen. Selbst OpenHAB hat inzwischen einen deutschen Alexa Support …

  16. Ralf sagt:

    Hallo,

    ich have versucht das ganze unter Win10 an den Start zu bringen, da ich mein Kamerasystem mit der Software BlueIris betreibe und der Rechner 24/7 läuft. Die Ha-Bridge lief bisher einwandfrei, nur das man eben sehr viele Regeln brauchte.

    Ich habe jetzt einen Apache 2.4 und Python installiert. Der Apache läuft an Port 8080 und Python Scripte werden mit angepaßtem Port zum Apache und Pfad zum Pythonverzeichnis auf der Hdd ausgeführt, zumindest verliefen die Tests positiv. In der Ha-Bridge habe ich den Link angepasst, sowohl Port zum Apache als auch die TurnUuID nach der Vorlage oben aus dem Blog. Beim Test der Schaltung bekomme ich eine positive Antwort von der HA-Bridge, jedoch wird die Schaltung tatsächlich nicht durchgeführt.

    Ich finden den Fehler nicht. Das einzige was mir aufgefallen ist, dass in dem Verzeichnis in dem die Scripte liegen, nur eine neue Datei dazu gekommen und nicht zwei.Bei mir fehlt die cookie.txt. Die Zipatoapi.pyc ist vorhanden. Einen weiteren Unterschied konnte ich nicht feststellen. Wie ich gelesen habe funktioniert es nicht mit nur einer neuen Datei im Verzeichnis „cgi-bin“. Könnte es in meinem Windowssystem auch was mit den Schreibrechten zu tun haben?

    Vielleicht hat ja jemand eine Idee warum es bei mir nicht funktioniert, bzw. wie ich dem Apache sage das er zwei Dateinen anlegen soll.

    Gruß Ralf

    1. ldeutsch sagt:

      Hallo,

      klappt das Schalten, wenn Du die on/off Regeln in der HA Bridge testest ?

      Grüße,
      Lars

    2. gregor sagt:

      Hallo Ralf,

      Du musst die Python Skripte ins cgi-bin Verzeichnis des Apache Servers hinzufügen „c:\Program Files\Apache2.4\cgi-bin“ oder so ähnlich sollte der Pfad sein. Ansonsten wird das nicht funktionieren.

      VG,
      Gregor

  17. Ralf sagt:

    Hallo,
    nein, das Schalten klappt nicht, also keine Reaktion am der Steckdose. Die HA-Bridge zeigt mir aber eine grüne Bestätigung zu dem Befehl/Test an. Es scheint nicht an dem Link in der HA-Bridge zu liegen, sondern eher an meinem Apache. Ist vielleicht der Port der HA-Bridge für die Scripte auf dem Apache relevant?

    Gruß Ralf

  18. Ralf sagt:

    Hi Gregor, hatte sich gerade übeschnitten. Die Scripte liegen im Verzeichnis cgi-bin.

    Gruß Ralf

    1. gregor sagt:

      Hallo Ralf,

      welche Python Version hast Du genau installiert?
      1. Stell sicher, dass Du Python2.7 verwendest, da ich es in Python2.7 Programmiert habe. 2. Es wäre gut zu wissen, unter welchem User der Apache Prozess unter Windows läuft. Es muss sichergestellt werden, dass der „Apache“-User im selben Verzeichniss schreiben darf.
      http://httpd.apache.org/docs/2.4/platform/windows.html
      Okay wie es aussieht, läuft der Apache unter dem normalen User Account, als der Du eingeloggt bist, wenn ich es richtig verstehe. Stell noch sicher, dass dein User aufjedenfall die rwx Berechtigungen auf das cgi-bin Verzeichnis hat.

      VG,
      Gregor

      1. Ralf sagt:

        Hallo Gregor,

        ich bin alles noch mal durchgegangen und ein Stück weiter gekommen. Python 2.7 ist installiert, es scheint aber an dem „pycurl“ Modul zu liegen. Zunächst habe ich im Log des Apache festgestellt, dass das Modul scheinbar nicht installiert war. Nachdem ich es nachgeholt habe und nun die Version 7.43.0 für Python 2.7 installiert ist, wird im Log des Apache ein DLL Fehler angezeigt. Ich hab hier mal einen Auszug ohne Zeitstempel und IP aus meinem letztem Apache-Log. Habe ich mich vielleicht in der Version des Muduls vergriffen?

        End of script output before headers: alexa_skill_workaround.py

        Traceback (most recent call last):\r: C:/Apache/cgi-bin/alexa_skill_workaround.py

        File „C:/Apache/cgi-bin/alexa_skill_workaround.py“, line 9, in \r: C:/Apache/cgi-bin/alexa_skill_workaround.py

        from Zipatoapi import Zipatoapi\r: C:/Apache/cgi-bin/alexa_skill_workaround.py

        File „C:\\Apache\\cgi-bin\\Zipatoapi.py“, line 24, in \r: C:/Apache/cgi-bin/alexa_skill_workaround.py

        import pycurl\r: C:/Apache/cgi-bin/alexa_skill_workaround.py

        ImportError: DLL load failed: Die angegebene Prozedur wurde nicht gefunden.\r: C:/Apache/cgi-bin/alexa_skill_workaround.py

        Bitte nicht wundern wenn nicht gleich ein Rückläufer kommt, ich habe leider erst am WE wieder zum basteln.

        Gruß Ralf

        1. gregor sagt:

          Hallo Ralf,

          zu deinem Fehler habe ich folgendes gefunden:

          http://pycurl.io/docs/latest/install.html#windows

          If the C runtime library (MSVCRT.DLL) versions used by PycURL and Python do not match, you will receive a message like the following one when trying to import pycurl module:

          ImportError: DLL load failed: The specified procedure could not be found.

          To identify which MSVCRT version your Python uses use the application profiling feature of Dependency Walker and look for msvcrt.dll variants being loaded. You may find the entire thread starting here helpful.
          https://curl.haxx.se/mail/curlpython-2014-05/0000.html

          Ich vermute mal ganz stark das Du genau davon auch betroffen bist. Ich vermute mal Du hast schon die neueste Python2.7.13 Version installiert?
          Wenn man im Web nach der Fehlermeldung sucht, haben es auch viele hinbekommen, indem Sie eine andere Python2.7 Version installiert haben z.B. 2.7.6.

          1. Ralf sagt:

            Hi Gregor,

            danke für den Tip. Ich werde mich am Wochenende gleich damit befassen und mich dann eine Rückmeldung geben. Wenn es wirklich nur ein Versionsproblem ist, bin ich ganz zuversichtlich, dass ich es hinbekomme.

            Gruß Ralf

          2. Ralf sagt:

            Hallo Gregor,

            denn DLL Fehler konnte ich dank Deines Hinweises beseitigen. Außerdem habe ich die Shebang Zeile noch an Windows anpasst

            #!c:/Python27/python.exe

            Leider sind immer noch nicht alle Fehler weg. Ich bin alle Zeilen des Apache logs durchgegangen und habe nach den Fehlermeldungen gegoogelt, insbesondere nach der mit dem Zertifikatsproblem. Zertifikate habe ich erstellt und installiert. Wenn ich meinen Apache direkt über https://localhost aufrufe wird das Xampp Dashboard im Browser normal geöffnet.

            Hier ist noch mal ein Auszug aus meinem Apache Log.

            AH00098: pid file C:/Apache/apache/logs/httpd.pid overwritten — Unclean shutdown of previous Apache run?
            AH00455: Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 configured — resuming normal operations
            AH00456: Apache Lounge VC11 Server built: Dec 20 2016 13:02:04
            AH00094: Command line: ‚c:\\apache\\apache\\bin\\httpd.exe -d C:/Apache/apache‘
            AH00418: Parent: Created child process 4200
            AH00354: Child: Starting 150 worker threads.

            Traceback (most recent call last):\r: C:/Apache/cgi-bin/alexa_skill_workaround.py
            AH01215: File „C:/Apache/cgi-bin/alexa_skill_workaround.py“, line 29, in \r: C:/Apache/cgi-bin/alexa_skill_workaround.py
            AH01215: init = a.get_user_init()\r: C:/Apache/cgi-bin/alexa_skill_workaround.py
            AH01215: File „C:\\Apache\\cgi-bin\\Zipatoapi.py“, line 58, in get_user_init\r: C:/Apache/cgi-bin/alexa_skill_workaround.py
            AH01215: c.perform()\r: C:/Apache/cgi-bin/alexa_skill_workaround.py
            AH01215: pycurl.error: (60, ‚SSL certificate problem: self signed certificate in certificate chain‘)\r: C:/Apache/cgi-bin/alexa_skill_workaround.py

            Leider kenne ich mich mit Scripten und Programmiersprachen nicht gut genug aus. Ich frickel halt meistens so lange bis es funktioniert. Da ich hier jetzt nicht weiter komme, gebe ich vorerst auf und versuche es zu einem späteren Zeitpunkt noch mal von vorn.

            Trotzdem vielen Dank für Deine Hilfe Gregor.

            Gruß Ralf

          3. ldeutsch sagt:

            Hallo,

            nochmal vielen Dank für die super Idee! Ich habe jetzt alle meine Sprachgesteuerten Geräte auf „Direktzugriff“ umgestellt, läuft wie geschmiert!

            Der meiner Meinung nach entscheidende Vorteil: Die Kommandos an/aus/prozent funktionieren unabhängig ob das Gerät (z.B. der Rolladen) manuell anders geschaltet wurde. Das war immer nervig, weil die virtuellen Sensoren/meter nur dann die Regel triggern, wenn der Wert sich geändert hat. Das geht jetzt einwandfrei 🙂

            Grüße,
            Lars

          4. gregor sagt:

            Hallo Ralf,

            hast Du den Shebang in beiden Skripten angepasst? Ich schicke Dir morgen nochmal die Zipatoapi.py per Mail zu. Ich werde die entsprechende Library um die Kommandos erweitern, dass ssl nicht geprüft werden soll. Unter Linux tritt dieses Problem nicht auf.

            VG,
            Gregor

          5. gregor sagt:

            Hallo Ralf,

            hast Du eventuell notepad++ installiert? Wenn ja schau mal, ob Du alle versteckten Zeichen Dir anzeigen lassen kannst, wie hier beschrieben.
            http://stackoverflow.com/questions/767545/does-notepad-show-all-hidden-characters

            Das sieht für mich nicht gut aus, wenn ich mir nochmal deine Fehlermeldung ganz genau anschaue:
            AH01215: File „C:/Apache/cgi-bin/alexa_skill_workaround.py“, line 29, in \r: C:/Apache/cgi-bin/alexa_skill_workaround.py

            Da meckert der Apache über „\r“, wenn ich es richtig deute. Eventuell durch das kopieren auf Windows sind da versteckte Sonderzeichen hinzugekommen was nun Python zu den Fehlern zwingt.

            Viele Grüße,
            Gregor

          6. Ralf sagt:

            Hi Gregor,
            ich habe jetzt noch mal das Windows eigene Zip, anstatt WinRar, zum entpacken genutzt. Außerdem bin ich die betroffenen Zeilen mit dem vorgeschlagenem Editor noch mal durchgegangen. Sonderzeichen haben sich nicht dazu gemogelt.

            Ist aber auch nicht weiter tragisch, da erledige ich das eben weiter über die virtuellen Schalter und Regeln. Es wird bestimmt an den unterschiedlichen Betriebssystemen liegen und wegen einem Windowsuser lohnt sich weiterer Aufwand nicht wirklich.

            Vielleicht ringe ich mich doch n och mal zu eimen Pi durch. Ich muss mich nur mal schlau lesen ob die Leistung für meine Kameras reicht und ob ich das dann auch entsprechend hingebastet bekomme.

            Erst mal danke für Deine Hilfe Gregor und ne ruhige Woche.

            Gruß Ralf

            Gruß Ralf

          7. Ralf sagt:

            Hallo Gregor,
            ich wollte nur kurz mitteilen das es jetzt bei mir unter Windows 10 funktioniert. Es lag letztendlich an dem pycurl Modul. Es gibt diverse Versionen für Python 2.7 64 Bit. Ich habe alle 64 Bit Versionen durchprobiert und die pycurl-7.19.5.3.win-amd64-py2.7 hat dann endlich funktioniert.

            Da ich gern den Alarm per Sprachbefehl aktivieren möchte, hätte ich noch eine Frage. Lassen sich die UUID zum schalten der Alarmpartitionen auch irgenwo auslesen, oder muss man das Schalten trotzdem wie bisher über die virtuellen Schalter durchführen. Ich bin die Zipato API schon durchgegangen, hab aber bis jetzt noch keine passende UUID gefunden.

            Gruß Ralf

  19. pheidkamp sagt:

    Hi,

    warum klingelst du mit den Code nicht mal bei dem Entwickler der HA-Bridge an, vielleicht hat er ja Lust den Code in der Ha-Bridge zu integrieren. Schließlich gibt es für die HA-Bridge ja schon entsprechende Module für Vera, Harmony, Nest, Hue, usw.. Dann könnte man sich einiges an Aufwand und den zusätzlichen Web-Server sparen:-)

    Viele Grüße
    Peter

    1. gregor sagt:

      Hallo pheidkamp,

      oh das war mir so nicht bewusst. Ich bin kein Entwickler, sondern mache es nur ab und zu, um ein paar Dinge mir zu vereinfachen. Daher weiss ich nicht, ob die Code-Qualität gut genug ist, um das direkt in die HA-Bridge zu integrieren:). Ich schaue mir mal die github Seite von den HA-Bridge Entwicklern an und eventuell werde ich die kontaktieren, ob das Interesse besteht, dass zu integrieren.

      VG,
      Gregor

      1. Ralf sagt:

        Hi Gregor,

        das ist echt nett, aber mach Dir keinen Streß, ich bin die Woche leider nicht zu Hause. Ich freu mich aber trotzdem schon auf den neuen Anlauf.

        Gruß Ralf

  20. pheidkamp sagt:

    Hallo Gregor,

    das wäre richtig super.
    Die HA-Bridge ist zwar in Java geschrieben, aber vielleicht geht da ja was.
    Ich glaube da würden sich hier viele mächtig freuen:-))

    Viele Grüße
    Peter

  21. ldeutsch sagt:

    Hallo,

    ist es auch möglich damit eine Rolladenposition oder eine Dimmer Helligkeit zu schalten ?
    Die UUID habe ich gefunden, aber was ist das Attribut ?

    Grüße,
    Lars

  22. pheidkamp sagt:

    Hallo,

    ja, du musst dann am Ende einfach statt eines festen Wertes true oder false eine Variable übergeben. Einfach unter Dim Items am Ende =${intensity.percent} anhängen.

    Gruß
    Peter

  23. ldeutsch sagt:

    und die variable ist immer noch „state“ ?

  24. ldeutsch sagt:

    ok, tatsächlich immer noch state .. da bin ich nicht drauf gekommen 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.