Um immer Zugriff auf aktuelle Wetterdaten in der Homematic CCU zu haben, wird nicht unbedingt die entsprechende Hardware zur Messung benötigt. Man kann auch einfach über einen Wetterdienst die benötigten Daten aus dem Internet laden. Eine schöne API für diesen Zweck bietet der Dienst Wunderground.

Um die Abfrage der Wetterdaten zu automatisieren, habe ich ein kleines Homematic-Script entwickelt, welches sich die Daten über den angeboteten HTTP-Webservice herunterlädt und in eigene Systemvariablen auf der Homematic CCU abspeichert. Somit können diese Werte dann für unterschiedliche Aktionen weiterverarbeitet werden.

Installation

Das Script kann direkt in einem Programm eingebunden werden, welches z. B. alle 30 Minuten automatisch ausgeführt wird. Die Systemvariablen müssen nicht manuell erzeugt werden, dies erledigt das Homematic-Script automatisiert.

Voraussetzung

Neben der Homematic CCU, muss auf dieser der CUx-Daemon installiert und eingerichtet sein.
Zusätzlich wird zur Abfrage über den Wunderground HTTP-Webservice ein individueller API-Key benötigt, welcher kostenlos nach einer Registrierung über die Wunderground Webseite erstellt werden kann.

Konfiguration

Folgende Einstellungen müssen bei den entsprechenden Variablen individuell im Script vorgenommen werden, damit dies funktioniert:

CUXD_ID Seriennummer des CUx-Daemon Kanals
API_KEY Wunderground API Key
API_QUERY Ort für dem die Wetterdaten geladen werden sollen

Homematic-Script

Das aktuelle Script kann über GitHub heruntergeladen werden

Service – Weather Data – Wunderground auf GitHub

Aktuelle Wetterdaten über Wunderground Service abrufen und in der Homematic CCU speichern – Homematic-Script

19 Gedanken zu „Aktuelle Wetterdaten über Wunderground Service abrufen und in der Homematic CCU speichern – Homematic-Script

  • Könntest du bitte erklären, von welchem Gerät die CUXD_ID benötigt wird. Ich habe schon einiges probiert und jedesmal treten Fehler auf, bzw. die CCU fährt sich fest.

  • Es wird die ID von einem Gerät benötigt, dass über den CUx-Daemon (CCU Plugin) angelegt wurde, um z. B. wget ausführen zu können. Gibt denke ich über Google viele Anleitungen dazu…

  • Hallo,

    ich habe heute versucht dein Script in meiner CCU2 einzubinden.
    Leider stürzt diese immer nach dem einfügen des Scripts in einem Programm ab.

    Ich habe dein Script 1:1 kopiert und nur die oben genannten drei Anpassungen gemacht. Sobald man nach dem Einfügen des Scripts in der WebUI OK klickt hängt die CCU sich weg.

    Die CCU lässt sich dann nur noch über das ziehen des Stromsteckers wiederbeleben. Das Programm ist dann nicht mehr vorhanden.

    Es wäre klasse, wenn du einen Tip hast.

    Gru?

  • Hallo Jan,
    eine genau Diagnose ist natürlich etwas schwierig.
    Ich würde versuchen mich über SSH einzuloggen und im /var/log Ordner die Logmeldungen der CCU2 ansehen.
    Auch könnte das Log von CUXD interessant sein.
    Eventuell kann man dann daraus auf das Problem schließen.

    Gruß
    Esche

  • Hallo Esche,

    vielen Dank für den Tip!
    Ich habe gerade mal in die /var/log/messages und hmserver.log geschaut. Die werden nur leider beide beim Neustart gelöscht und da die CCU2 sich ja direkt nach dem OK drücken bei dem Einfügen des Scripts aufhängt, habe ich keine chance da ran zu kommen.
    Ich habe dein Script zum bearbeiten in die Notizen App am Mac kopiert, um die 3 Anpassungen zu machen. Ich werde es heute nochmal ohne den Zwischenschritt testen. Eventuell bring die Notizenapp irgendwas in der Syntax durcheinander.

    Könntest du das Gerät in der CUXD noch etwas genauer beschreiben?
    Ich habe jetzt einfach ein Gerät als (28) System mit der Funktion Exec angelegt.
    Muss es etwas anderes sein und wähle ich dann einfach den ersten Kanal des Gerätes??

    Vielen Dank für deine Rückmeldung!!
    Du kannst mir auch gerne direkt auf meine eMail Adresse antworten.
    Gruß
    jan

  • Hallo Esche,

    da bin ich nochmal.
    Ich kann tatsächlich auch nach dem aufhängen noch per SSH auf die CCU. Nur das WebUI ist nicht erreichbar und die APP bekommt auch keine Verbindung zur CCU.

    Ich habe jetzt also ein paar Einträge nach dem OK klicken und vermeintlichen Absturz.
    Es deutet in jedem Falle auf ein problem mit dem CUxD hin.
    hier die letzten Einträge:
    Jun 27 20:55:09 homematic-ccu2 daemon.err cuxd[239]: query_CCU_device_params() is NULL
    Jun 27 20:55:09 homematic-ccu2 daemon.err cuxd[239]: sendbinrpc(127.0.0.1:1999) – write() Connection refused
    Jun 27 20:55:09 homematic-ccu2 daemon.warn cuxd[239]: disable events to 127.0.0.1:1999

    Die ersten beiden wiederholen sich 50-100 mal.

    Gruß
    Jan

  • Hallo Jan, Hallo Esche,
    bei mir ist es (leider) ganz ähnlich, die CCU2 hängt sich aber schon beim Speichern des Scripts komplett auf und die Weboberfläche kann nur nach einem harten Neustart erreicht werden…

    Vielleicht liegt es an der Version vom CUxD? Ich verwende Version 1.7 und ihr?
    Gruß
    Jens

  • Hallo Jens,
    danke für deine Rückmeldung.
    Ich habe aktuell folgende Versionen installiert:
    CCU2: 2.19.9
    CUxD: 1.6
    Vielleicht hat es wirklich was mit der Version 1.7 zu tun.

    Um das Problem zu lokalisieren fällt mir eigentlich nur ein, dass du mal die Version 1.6 installierst. Sollte es dann immer noch nicht funktionieren, könntest du Zeile für Zeile (oder auch mal ein paar mehr) nacheinander in das Script einfügen und dann jeweils speichern. So solltest du zumindest den Aufruf bzw. die Zeile lokalisieren können, welche das Problem verursacht.
    Würde mich über eine Rückmeldung sehr freuen.

    Gruß
    Esche

  • Hallo Esche,
    mache mich am Wochenende dran und melde mich mit dem Ergebnis.
    Gruß
    Jens

  • Hallo Esche,

    also, es ist mir ohne Probleme gelungen, sämtliche Variablen mit Deinem Script anzulegen. Auch das Speichern des Scripts funktioniert wunderbar. Der Absturz kommt erst, wenn ich entweder auf „Script Testen“ klicke, oder, das Script aufgerufen wird.

    Ist weniger Text im Script, wirft das „Script auf Fehler prüfen“ folgende Meldung:
    Error 1 at row 15 col 44 near ^#“.CMD_QUERY_RET“;
    string CUXD_CMD_RET = „CUxD.“#CUXD_ID#“.CMD_RETS“;

    Ich habe extra noch mal geprüft, ob mein CuxD den selben Namen hat: CUX2801001
    Ja, ist er. Habe den CUxD nach folgender Anleitung installiert: http://homematic.simdorn.net/cuxd-installation/

    Persönliche Vermutung: es scheint wirklich am der Version 1.7 des CUxD zu liegen, da der Absturz sofort kommt, wenn ich eine beliebige Zeile des Codes mit dem Ansprechen des Dienstes ausführe.

  • Hallo Jens,
    habe mir das ganze nochmal angesehen.
    Ich habe Version 1.7 CUxD installiert und auch die aktuelle CCU2 Firmware 2.21.10 in Verwendung.
    Ich habe das Script jetzt nochmal explitzit in mein Programm kopiert und nur die Variablen API_KEY und API_QUERY angepasst.
    Erkenntnis: Bei mir läuft alles weiterhin ohne Probleme

  • Dann bin ich ratlos. API_QUERY ist bei mir „Germany/Bergisch Gladbach“, den Key habe ich aus dem Antrag für Entwickler direkt aus der Seite kopiert…
    Könnte es an der Installation des CUxD bei mir als Exec liegen? Bei mir ist jetzt auch die aktuelle neue Firmware im Einsatz, die GUI schmiert immer noch beim Ausführen ab…

  • Nachdem ich das Problem mit dem Aufhängen der CCU auch bei mir reproduzieren konnte, habe ich mir mal das Script nochmal genauer angeschaut.
    Ich habe ein paar sehr kleine Änderungen vorgenommen.
    service-weather-wunderground-conditions.hms – Changes
    Damit läuft meine CCU jetzt wieder stabil.
    Jens: Könntest du es auch bei dir testen und kurz Rückmelden ob es auch bei dir funktioniert?

  • Hallo!
    Habe das Script bei mir auch eingebunden. Funktioniert soweit problemlos.
    Wollte nun den Parameter API_FEATURE = „conditions“; – zu „forecast“ abändern, da ich die Vorhersagen benötige…
    Geht das überhaupt?
    Nach dem Abändern kommen keine Daten mehr an.
    Für Info wäre ich dankbar.
    Norbert

  • Hallo Norbert,

    grundsätzlich funktioniert das auch, jedoch ist das Script nicht daraus ausgelegt, da dann die XML-Struktur eine andere ist. Somit müssten weitere Änderungen am Script vorgenommen werden, damit dies korrekt funktioniert. Dies ist jedoch ein etwas größerer Aufwand.

    URL: http://api.wunderground.com/api/KEY/forecast/lang:DL/q/Germany/Berlin.xml
    Response Fields: https://www.wunderground.com/weather/api/d/docs?d=data/forecast
    Zum Vergleich die aktuellen Response Fields für „conditions“:
    https://www.wunderground.com/weather/api/d/docs?d=data/conditions

  • Hallo,
    ich bin noch recht neu in der Homematic Welt.
    Den CUXD-Dämon habe ich installiert, ein Programm erstellt, daß das Script stündlich aufruft.
    Wie bekomme ich eine CUXD_ID ?

    Viele Grüße
    Henrik

  • Hallo Henrik,
    du musst über die CUx-Daemon Oberfläche unter „Geräte“ ein neues (virtuelles) Gerät einrichten, dass dir dann in der CCU2 zur Verfügung steht.
    Die CUXD Id des Geräts wird dir dann auch gleich in der Auflistung der Geräte angezeigt. Oder einfach dann über die CCU2 Geräteübersicht in der Spalte „Seriennummer“ schauen. Wenn du nicht genau weißt, wie man ein CUXD Gerät erstellt, dann einfach mal googeln.
    Gruß
    Esche

Schreibe einen Kommentar

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