Fibaro Home Center - Sensorwerte grafisch als Diagramm darstellen

Geschrieben von crissxcross

So eine triviale Funktion, aber dennoch vermissen diese viele von euch im Fibaro Home Center! So kannst du Sensorwerte speichern und grafisch in einem Diagramm darstellen.

Auf der Weboberfläche des Fibaro Home Center, unter dem Menüpunkt "Verbrauch", hast du natürlich die Möglichkeit die Verbrauchswerte von deinen Geräten (Energiemessfunktion vorausgesetzt) einzusehen. Du kannst diese in einem Diagramm darzustellen und sogar Werte aus den verschiedenen Räumen zusammenzufassen und diese auch vergleichen.

Auch den Temperaturverlauf der einzelnen Räume-, sowie auch der einzelnen Temperatursensoren je Raum kann man sich hier anzeigen lassen. Aber an dieser Stelle beginnen schon die ersten Probleme. Ich kann nur jeweils die Temperatursensoren des Raumes "loggen" und im Diagramm anzeigen. Was aber, wenn ich nun die vom Motion Sensor gemessene IST Temperatur mit der SOLL Temperatur des Danfoss Thermostat vergleichen möchte? Keine Chance!

Auch gibt es keine Möglichkeit, zum Beispiel die gemessene Luftfeuchtigkeit in einem Verlaufsdiagramm darzustellen, oder die eines Helligkeitssensors.

Als ich damals zum ersten Mal den Z-Weather hier auf siio vorgestellt hatte, blickte ich ziemlich neidisch auf die Devolo Home Control Zentrale sowie auch auf den homee. Bei diesen Smart Home Zentralen können "out-of-the-box" mit allen Werten Diagramme erstellt werden. Und erst so macht eine Wetterstation Sinn! Was nützt es mir, wenn ich nur Livedaten meines Z-Weather sehe? Da kann ich auch aus dem Fenster schauen, um zu sehen, dass es windig ist. Ich möchte die Daten wie Außentemperatur, Windstärke, Taupunkt, Luftfeuchtigkeit usw. aufzeichnen und grafisch in einem Diagramm darstellen!

Das hat mich wirklich gewurmt! Als das Thema Z-Weather[icons icon="icon-link" color="#1e73be" size="13"] erneut in der Community aufkam, brachte Sascha den hilfreichen Hinweis: Im englischen Fibaro Forum, hat Dave Harrison ein relativ simples LUA Script vorgestellt, welches die Werte beliebiger Sensoren und Geräte welche mit dem Home Center verbunden sind ausliest um diese dann per http Request an das Webportal: maker.smartliving.io - zu senden. Smartliving.io ist eine Plattform, welche die Daten speichert und automatisch in grafischen Diagrammen aufbereitet.

Wie du das Script einsetzt und was du dafür vorbereiten musst, das liest du hier!

Account auf smartliving.io erstellen

Logisch, zunächst benötigst du einen Account auf maker.smartliving.io, in welchem du die Daten speichern und später abrufen kannst. Zum anlegen des Accounts, benötigst du lediglich eine gültig eMail Adresse, einen Wunsch-Nickname und dein individuelles Passwort. Danach erhältst du eine eMail, in welcher du via Klick auf einen Link die Gültigkeit deiner eMail Adresse bestätigen musst. Danach bist du schon im Besitz eines Accounts auf maker.smartliving.io :-) easy!

Smartliving.io Account erstellen

Smartliving.io Account erstellen

smartliving.io - Gerät verbinden

Nach dem ersten Login landest du auf deinem noch recht leeren Dashbboard. Beginne mit dem hinzufügen von einem Gerät. Naja, so wirklich physisch verbinden wir hier nichts, wir tun nur so - virtuell eben.

[alert variation="alert-info"]Im nächsten Schritt werden wir diesem "Gerät" Sensordaten zuordnen. Alle Daten die du in einem "Gerät" sammelst, kannst du später in einem gemeinsamen Diagramm darstellen. [/alert]

Du kannst dein erstes Gerät frei benennen. Nenne es zum Beispiel "Fibaro Home Center 2", oder wenn du alle Temperaturen deines Hauses in einem Diagramm haben möchtest, so benenne es beispielsweise als "Temperaturen-Räume" - wie du willst. Der Name lässt sich später auch ändern und du kannst auch noch beliebig weitere "Geräte" erstellen.

[carousel arrows="display" buttons="display"] [panel title="smartliving - device erstellen"]
Smartliving - Device erstellen

Smartliving - Device erstellen

[/panel] [panel title="smartliving - device erstellen"]
Smartliving - Device erstellen

Smartliving - Device erstellen

[/panel] [panel title="smartliving - device erstellen"]
Smartliving - Device benennen

Smartliving - Device benennen

[/panel] [/carousel]

Für unser kleines Tutorial hier, bleibe ich gleich mal bei meinem größten Wunsch, die Sensorwerte des Z-Weather aufzuzeichnen. Also benenne ich das Gerät schlicht als "Wetterdaten"

Nach dem Erstellen des "Device" bekommst du schon folgende wichtige Daten angezeigt:

  • Client id
  • Client key

Dies sind später in der Fibaro LUA Szene deine Authorisierungsdaten, damit die LUA Szene in deinen smartliving.io Account schreiben darf.

Authcode Daten für API Call

Authcode Daten für API Call

smartliving.io - Asset erstellen

Danach kannst du sogenannte "Asset´s" anlegen. Dies sind die Sensordaten, welche wir speichern und grafisch darstellen wollen. Pro "Device" (das was wir im letzten Schritt erstellt haben) sind bis zu 16 Assets möglich. Um in unserem Beispiel zu bleiben, erstelle ich nun als erstes "Asset" den Sensor "Z-Weather Windgeschwindigkeit".

Smartliving -Asset erstellen

Smartliving -Asset erstellen

Nachdem du nun auch das "Asset" erstellt hast, klicke auf den Namen. Hier findest du oben rechts ein "Zahnrad"-Symbol, über welches du zu den Details gelangst. Hier finden wir nun alle Infos welche wir benötigen: die Client id und den Client key, welchen wir bereits vorhin unter "Device" schon erhalten haben. Zusätzlich bekommen wir hier auch die eindeutige id für dieses Asset:

  • Asset id

An dieser Stelle siehst du unten in dem Feld "Profile", das der "type" auf "string" steht. Strings können nicht in Diagrammen ausgewertet werden. Daher musst du diese hier auf "number" umstellen. Dazu einfach in das Feld klicken, das Wort "string" löschen und "number" eintragen. Danach mit dem Button "SET" bestätigen. En großer grüner Banner im Fuß der Seite sollte nun den Erfolg vermelden.

[carousel arrows="display" buttons="display"] [panel title="smartliving - asset erstellen"]
Smartliving.io Asset

Smartliving.io Asset

[/panel] [panel title="smartliving - asset erstellen"]
Smartliving.io Asset Einstellungen

Smartliving.io Asset Einstellungen

[/panel] [panel title="smartliving - asset erstellen"]
Smartliving.io Asset Details

Smartliving.io Asset Details

[/panel] [/carousel]

Fibaro Home Center - LUA Szene erstellen

Wir wechseln auf die Oberfläche des Home Center 2 und gehen dort, zum erstellen von LUA Szenen, wie gewohnt über den Menüpunkt: Szenen -> Szene hinzufügen -> LUA Szene. Hier fügst du folgenden LUA Code ein. In alter bewährter Weise, poste ich jetzt erstmal das vollständige Script von Dave Harrison (leicht von Daniel modifiziert) und im Anschluss schauen wir uns die wichtigsten Stellen einmal an, um zu verstehen was da passiert. (Was Daniel genau modifiziert hat, - das erkläre ich im Abschnitt Trigger)

Wir beginnen in Zeile 39-40. Das sollte recht selbsterklärend sein, hier geht es um die Authentifizierungs-Daten für den http Aufruf.

Diese Daten wurden zum einen nach dem erstellen des "Device" im smartliving.io angezeigt und du findest diese auch noch einmal, wenn du in die Einstellungen (Zahnrad Symbol) deines erstellten "Asset" gehts.

Fibaro Home Center - Sensordaten abfragen und loggen

Kommen wir zum spannenden Teil - dieser findet sich in Zeile 29-30. Hier siehst du, das ein Temperatursensor mit der ID 28, sowie ein Thermostat mit der ID 27 abgefragt wird. Dies erfolgt über den Befehl:

"loungeTemperature" ist dabei nur eine Variable, damit du später nachvollziehen kannst, welcher Sensor hier abgefragt wird. Da der Variablen-Name an keiner weiteren Stelle im Script verwendet wird, kannst du diesen frei vergeben. Soll heißen, du kannst es auch "Sensor1", oder "ZWeatherWind" nennen.

fibaro-modul-idNun öffnest du (am besten in einem neuen Tab oder Fenster) den Menüpunkt "Module" auf der Fibaro Weboberfläche und suchst den Sensor, dessen Werte du im Diagramm darstellen möchtest. Wenn du diesen anklickst, siehst du dessen ID in der URL, sowie auch in der Registerkarte "Allgemein" unter "ID".

Genau diese Nummer trägst du bei "deviceId = XX, ein. Die "assetId" kennst du bereits. Diese wird dir angezeigt, wenn du in deinem smartliving.io Account unter "Asset" oben rechts auf das "Zahnrad"-Symbol klickst.

[alert variation="alert-info"]Kurzum, an dieser Stelle verknüpfst du also deinen physikalischen Z-Wave Sensor / Gerät (deviceID) mit dem virtuellen Sensor (assetID).[/alert]

Genau nach diesem Schema kannst du nun beliebig weitere Sensoren abfragen und den Wert an die Assets senden. Versuch es doch gleich nochmal mit der zweiten Zeile: "loungeThermostat".

  1. neues Asset in smartliving.io anlegen
  2. Asset öffnen - > Zahnrad Symbol
    1. in Profile von "string" auf "number" ändern
    2. asset ID merken / notieren / kopieren / wissen wo es steht :-)
  3. im Fibaro HC den gewünschten Sensor suchen - ID ermitteln
  4. deviceID  und assetID in der LUA Szene anpassen

Für alle die es interessiert, an welcher Stelle die Module / Geräte IDs abgefragt werden - dies passiert ab Zeile 82. Dort findest du:

Der Befehl "tonumber" macht aus dem Wert, welcher durch "fibaro:getValue" abgefragt wird, aus einem String eine Nummer. HA! Da haben wir es wieder, die Story mit String und Number ;-)

at = currentDateISO fügt das Datum und die Uhrzeit an, welches mit an smartliving.io übergeben wird, um den Zeitpunkt auf der X-Achse im Verlaufsdiagramm korrekt zu setzen.

Testlauf

Dann speicher die LUA Szene doch einfach mal ab. Im Debug sollte nun in etwa soetwas erscheinen:
[DEBUG] 14:01:59: Autostart
[DEBUG] 14:01:59: loungeTemperature: {"at":"2016-11-04T14:01:59Z","value":2}
[DEBUG] 14:02:00: 9oy00mXS6hLrdMR9TOa0aXpF: 200 - successful

Zuerst werden die Werte ausgelesen, gefolgt von "at" dem Datum und der Uhrzeit. Wenn alle Sensoren ausgelesen sind, werden die Werte an smartliving.io gesendet. War dies erfolgreich meldet der Debug eine "200 - successful" zurück und du siehst den Wert direkt im Asset auf smartlivin.io.

Asset zeigt Wert und letzte Aktualisierung an

Asset zeigt Wert und letzte Aktualisierung an

Trigger

Im Debug steht etwas von "Autostart". Da du sicherlich nicht 24h vor deinem PC sitzen und manuell auf "Szene ausführen" klicken möchtest, benötigst du einen Trigger. Ein Trigger oder auf Deutsch ein Auslöser, startet die Szene. Auslöser unterscheiden sich in:

  • Zeittrigger
  • Gerätetrigger

Zeittrigger können die Szene intervallbasiert starten, ein Gerätetrigger startet die Szene, sobald sich sein Zustand oder Wert verändert. Dies hat Daniel an der original Szene von Dave Harrison modifiziert, damit du diese je nach deinen Wünschen nutzen kannst.

Zeittrigger - Autostart

Falls du mit dem Script eine Temperaturkurve loggen möchtest, um Beispielsweise die SOLL Temperatur der Heizungsthermostate auf die aktuelle IST Temperatur zu legen, dann ist ein Zeit Trigger sinnvoll, welcher beispielsweise intervallbasiert alle 15 Minuten die Szene startet.

In dem Beispielscript oben, hat Daniel eine Modifizierung zum original Script eingebaut, wodurch die Szene mit einem Autostart-Trigger automatisch gestartet wird. In Zeile 94 definiert der folgende Befehl den Intervall, in welchem die Szene getriggert wird:

Die Zeitangabe 300*1000 lässt die Szene für 300 Sekunden (also 5 Minuten) pausieren, bevor diese erneut ausgeführt wird. Möchtest du den Intervall auf beispielsweise 15 Minuten erhöhen, so trage dort 900*1000 ein.

Gerätetrigger

Zurück zu unserem Beispiel, dem Z-Weather. Da dieser nicht mit einer Batterie ausgestattet ist, sondern ein Solarpanel einen internen Kondensator lädt, wird das das wakeup-Intervall des Gerätes von einem Energiemanagement variiert. So sendet der Z-Weather an sonnigen Tagen alle 15 Minuten neue Messwerte, an bewölkten Tagen ca. alle 2h und an dunklen Wintertagen kann das Aufwachen bis zu 5h dauern. Hier wäre ein Zeitintervall also suboptimal und das Diagramm welches daraus entsteht, wäre nicht aussagekräftig.

Daher nutzen wir hierfür einen Gerätetrigger. Dazu musst du lediglich im Header der Szene das Wort: %% autostart entfernen und im Bereich %% Properties die Geräte ID eintragen, welche die Szene starten soll:

Würde sich oben im Beispiel der Zustand, oder der Sensorwert (value) des Gerätes mit der ID 28 ändern, so würde dies die Szene starten. Verwendest du mehrere Geräte im Script, so kannst du die Szene auch von mehreren Geräten triggern lassen. Hierzu einfach weitere Geräte IDs in den Properties Bereich hinzufügen. Bedeutet für den Z-Weather: wacht dieser auf und sendet einen neuen Wert an das Fibaro Home Center, so würde die Szene starten und der neue Wert wird sofort an dein smartliving.io Account gesendet.

Dank Daniels Modifikation, siehst du im Debug der Szene dann:

[DEBUG] 14:03:53: Trigger
[DEBUG] 14:03:53: loungeTemperature: {"value":2,"at":"2016-11-04T14:03:53Z"}
[DEBUG] 14:03:54: 9oy00mXS6hLrdMR9TOa0aXpF: 200 - successful

Diagramm

Bevor du einen Kaffee trinken gehst, während smartliving.io deine Daten sammelt, musst du noch etwas ganz wichtiges aktivieren. Gehe dazu auf dein erstelltes Device (dort wo du alle Assets in einer Übersicht angezeigt bekommst) und klicke oben rechts auf das "Zahnrad"-Symbol um den Schieberegler: Storing device activity - auf "aktiv" zu setzen.

[carousel] [panel title="smartliving - Store data"]
smartliving.io Store Data

smartliving.io Store Data

[/panel] [panel title="smartliving - Store data"]
smartliving.io Store Data

smartliving.io Store Data

[/panel] [/carousel]

Danach kannst du auf den Tab: "Activity" wechseln und solltest bereits die ersten Werte als Datenpunkte im Diagramm sehen. Per Klick auf die Sensoren, werden diese dem Diagramm hinzugefügt bzw. bei wiederholtem Klick aus der Betrachtung ausgeschlossen. Die Art des Diagramms (Säulen- oder Liniendiagramm), kannst du unten im Fuß auswählen.

Z-Weather Diagramm

Z-Weather Diagramm

Anwendungsbeispiele:

So lassen sich nun endlich die Wetterdaten des Z-Weather grafisch darstellen und wenn dann der Z-Rain in den Handel kommt, können auch dessen Werte über die gefallene Regenmenge schön in einem Säulendiagramm dargestellt werden.

Z-Weather Diagramm

Z-Weather Diagramm

Neben meiner Tätigkeit als Hobby-Meteorologe, nutze ich das Script ausserdem um meine Heizpläne zu optimieren. So erfasse ich die SOLL Temperatur aller meiner POPP Heizungsthermostate[icons icon="icon-link" color="#1e73be" size="13"]. Zwar baugleich zu den Danfoss LC-13, übermitteln diese aber auch die vom Heizungsthermostat gemessene IST Temperatur. So ließe sich die Heizkurve besser verstehen und optimieren.

[carousel arrows="display" buttons="display"] [panel title="Diagramme"]
5°C Absenktemperatur Fenster offen

5°C Absenktemperatur Fenster offen

[/panel] [panel title="Diagramme"]
Heizkurve SOLL und IST Wohnzimmer

Heizkurve SOLL und IST Wohnzimmer

[/panel] [/carousel]

Theoretisch, könnte man soweit gehen, dass man auf die IST und SOLL Heizkurve auch die Bewegungserkennung legt. So würde man über einen längeren Zeitraum sehen, falls man einen Raum auf Komfortemperatur heizt, diesen aber in dem Zeitblock sehr oder gar nicht nutzt.

Diagramme 2 go - smartliving Smartphone App

Für unterwegs gibt es auch die Smartliving iOS App und Smartliving Android App. Hier kannst du zwar nicht die gemeinsamen Diagramme (Activitys) einsehen, aber du kannst den Datenverlauf in einem Diagramm je Sensor / Gerät darstellen. Dafür gehst du in die Assets und dort wieder auf das "Zahnrad" Symbol. Unten neben dem Tab Profile - in welchem wir vorhin von String auf Number umgestellt haben findest du den Bereich "Control".

Control Chart Typ ändern

Kopiere folgende Befehlskette in das Feld und bestätige es über den Button "SET".

Die Angabe "timescale": 7d steht für die Zeitskala von 7 Tagen. Das kannst du wie folgt anpassen:

  • 60m: 60 minutes (1 Stunde)
  • 24h: 24 hours (1 Tag)
  • 7d: 7 Tage
  • 30d: 30 Tage

Jetzt nur noch oben rechts über das PIN Symbol dieses Asset dem Dashbaord hinzufügen und es wird beim Öffnen der App mitgeladen.

[carousel arrows="display" buttons="display"] [panel title="Diagramme in der Smartphone App"]
Diagramme in der App

Diagramme in der App

[/panel] [panel title="Diagramme in der Smartphone App"]
Diagramme in der App

Diagramme in der App

[/panel] [/carousel]

Hier ist so einiges möglich! .. und für was nutzt du die Diagramme? Berichte uns davon in den Kommentaren!

Diesen Blogpost hat geschrieben ...

crissxcross

Chris, Gründer und Blogger von siio.
Gelernter IT-Systemelektroniker, seit vielen Jahren beruflich als Produktmanager im Smart Home unterwegs. Technikverliebter Familienvater, Apple Fan. Nach einigen Jahren Stadtleben wieder froh auf dem Land zu sein.

28 Kommentare

  • He, dass freut mich das nochmal ein Tip von mir
    Euch als Anleitung dient. Cool. Jetzt kann ich mich
    Dann auch ran trauen?
    Habt Ihr echt super beschrieben. Ich finde nämlich
    Auch das genau diese Funktionen sehr wichtig sind.
    Gerade auch in Verbindung um eine Heizkurve auszulesen.

    Gruß Sascha

  • Hallo crissxcross,
    vielen Dank für diesen Beitrag - eine wirklich sehr gute Sache und auch gut umzusetzen.
    Ich habe aktuell noch 2 Dinge die leider nicht funktionieren:
    1. Zeile 36 bringt einen Fehler beim Speichern der Szene: [DEBUG] 09:36:15: line 38: ')' expected near 'color'
    2. Wenn ich die Szene manuell triggere funktioniert alles - wenn ich sie automatisch alle 15 Minuten starten lasse, dann bekomme ich einen Fehler: [DEBUG] 09:39:53: [1;31m2016-11-05 09:39:53.089611 [ fatal] LUA error: /opt/fibaro/scenes/20.lua:43: attempt to concatenate local 'assetId' (a nil value)
    Hat da jemand noch eine Idee was das sein könnte?
    Vielen Dank und viele Grüße

  • Hallo, habe gerade versucht es umzusetzen, leider erhalte ich im DEBUG folgenden Fehler:

    [DEBUG] 10:05:18: line 36: ')' expected near 'color'

    Die betreffende Zeile ist wie im Originell LUA Script:

    local function errorlog(str) fibaro:debug(""..str..""); end

  • Hi. also ich habe auch den Fehler: [DEBUG] 09:39:53: [1;31m2016-11-05 09:39:53.089611 [ fatal] LUA error: /opt/fibaro/scenes/20.lua:43: attempt to concatenate local ‚assetId‘ (a nil value)
    wenn ich es über die Zeitsteuerung mache. Zudem bin ich noch etwas unzufrieden mit dem Diagrammen, bei mir werden nur Punkte angezeigt. Eine Linie wird nur gezeichnet, wenn ich viele Werte eintrage.

    Timescale:
    1h -> benötig jede minute einwert, damit eine linie gezeichnet wird
    24h -> kann man irgendenwie total vergessen, da seh ich fast gar nichts
    1 wekk -> hier krieg ich noch am ehesten eine linie, da hier ein messpunkt pro stunde reicht.
    dieses "Zoom" stellt mich nicht wirklich zu frieden, da es auch nur unter Devices geht. Im Playground/ Dashboard krieg ich generell nur eine Timeline von 1h. was sich auch nicht ändern läßt.

    Ich habe überlegt ob ich mir auf einen Respi das Fhem installiere und die Messwerte dahin zu exportieren. Oder man fragt bei Fibaro mal nach ob die auch für Helligkeit und Feuchtigkeit noch die Statistiken implementieren. Die temperaturen haben sie ja auch nachgepflegt.

  • Hallo zusammen,
    super Sache und läuft wie beschrieben perfekt. Danke an ALLE.
    Ein Frage habe ich, wenn ich die Heizkurve aus dem Fibaro Heating Panel auslesen möchte, was kann ich tun?
    Wenn ich die id des Heizplans angebe, bekomme ich eine "0" in maker.allthingstalk geliefert.
    Herzlichen Dank und weiter so :-)

  • Hallo Criss,

    habe die Szenen jetzt am Laufen - Vielen dank für Dein Engagement!
    Ich habe jedoch die App nicht gefunden..?
    Unter "Smartliving" kommt alles Mögliche, aber nicht die Beschriebene Applikation.

    Bitte poste doch einmal die genaue Bezeichnung oder das zugehörige Icon zur genauen Identifizierung - Vielen Dank.

    Außerdem eventuell interessant:
    Zur Regenmengen-Messung verwende ich den Sensor RG-11 von HYDREON (www.rainsensors.com). Dieser besitzt vielfältige Einstellmöglichkeiten und arbeitet nicht mechanisch. In Kombination mit einem FIBARO-Universalsensor habe ich hier diverse Möglichkeiten zur Steuerung und Auswertung.

    Beste Grüße.

      • Hallo Criss,

        zunächst noch zur App:

        Kein Erfolg! (Wollte hier mit Ctrl-V Screenshot von GooglePlay einfügen - geht nicht?)

        Zum Sensor:
        Den habe ich direkt auf der Seite (also in den USA) bestellt. Der Versand dauert zwar etwas, und im Zweifel muss man zur Abholung zum nächsten Zollamt, ansonsten kein Problem. Import-Steuern fallen auf Grund der geringen Summe nicht an.

        Zum Anschluss - würde gern eine Skizze einstellen, geht aber hier (siehe oben) irgendwie nicht.

        Der Anschluss an den Universalsensor ist aber unkompliziert:

        Sensoren parallel mit Spannung aus EINER Quelle (12V DC) versorgen (also +Pol an PWR1 des RG-11 und an P beim Universalsensor). Dann den NC-Konakt des RG-11 mit dem (z.Bsp.) IN1 vom Universalsensor verbinden. Zum Schluss noch den COM-Kontakt des RG-11, PWR2 vom RG-11, GND vom Universalsensor mit dem -Pol der 12V Gleichspannungsquelle verbinden.

        Wenn alles passt die DIP-Schalter am RG-11 mal nach dem Chart "Mode 1: It's Raining" (Medium Sensitivity) in der Bedienungsanleitung vom RG -11 setzen und dass ganze verschrauben. Nun versuchsweise etwas Wasser auf das Gehäuse geben. Die grüne LED sollte nun leuchten und der Universalsensor auf "ausgelöst" wechseln.

        Wenn alles funktioniert wird es etwas schwerer: Man muss sich nämlich für einen der vielen Modi des RG-11 entscheiden:
        Ich hatte zunächst einfach nur wissen wollen ob es regnet (um so meinen Rasenmäher zu steuern). Die Auswertung benötigt nur den Status des Universalsensor-Kontaktes. Die Verzögerung (also für die BMSR-Fans die Hysterese) lässt sich dabei am RG-11 auf 15min oder 0 setzen.
        Man kann aber auch die Regentropfen (nach Größe!) auswerten, einen Bewässerungssteuerungsmodi auswählen, oder auch Scheibenwischer ansteuern.
        Ich habe aktuell die Simulation eines Regenmengenmessers mit Kippsensor gewählt.
        Dabei sendet der RG-11 jeweils bei Erreichen einer Regenmenge von 0,2mm (ist einstellbar) einen Impuls, welcher vom Universalsensor registriert wird.
        Aktuell versuche ich diesen Impuls mit einer Lua-Szene und einem Virtuellen Device im Fibaro-System auszuwerten.

        Bin dabei für jede Idee/Beispiel dankbar!

  • AllThingsTalkMaker hat am 29. Juni 2017 ziemlich viel geändert am Layout und auf den ersten Blick die Asset ID in "ID" geändert. Seither funktioniert die Datenübertragung von fibaro an AllThingsTalk nicht mehr. Im debug der Szene heisst es dann auch: "Device ID": ERROR

    Ist das ein Allgemeines Problem oder geht es nur bei uns nicht mehr?

  • Hi

    Konnte das Ganze leider nicht zum Laufen bringen. Bekomme nur ERROR -Meldungen in der Szene als Debug. Analog Melissa oben. Mir scheint auch, dass AllThingsTalk soviel verändert hat, dass das obige LUA-Skript nicht mehr geht und entsprechend angepasst werden müsste. Habe aber auch keine Ahnung, wie das geht. Kann da jemand weiterhelfen?

    Gruss

  • Hallo,
    ich habe es bei mir hinbekommen.
    Zeile 41 geändert in: local url = "https://api.allthingstalk.io/asset/" .. assetId .. "/state"
    und Zeile 99 deaktiviert.
    Bei mir funktioniert es wieder.

    Grüsse

  • HI,

    leider scheint es keinen clientKey mehr zu geben:

    Authenticating generic clients using Auth-ClientId and Auth-ClientKey headers will be deprecated during 2017
    ...und dann:
    NOTE: This is legacy document that describes how we used to support generic client authentication.

    Würde mich sehr über eine aktualisierte Anleitung freuen (und verstehe weiterhin nicht warum Fibaro das nicht integriert)

    LG Mike

  • Moin,
    wie kann ich das ganze realisieren wenn ich die Werte von einer Datenbank nach api.allthingstalk.io übertragen möchte? Oder kann ich das per einfachen Link übergeben?
    lg Andy

  • Auch ich würde mich sehr über eine aktualisierte Version freuen - bekomme Fehlermeldung, denen es liegt an den nicht mehr vorhandenen ClientID bzw ClientKEY

    Danke!!

  • Hallo und vielen Dank für dies Tutorial!

    Gibt es ein Update auf die "neue Seite" /allthingstalk.io/? Würde es gerne einsetzten, scheitert aber gerade an ClientId and Auth-ClientKey..

    schönen Start ins Wochenende!

    • --[[
      %% properties
      %% events
      %% globals
      fifteenMinuteTimer
      --]]

      -- Scene : All Things Talk Test
      -- Version : 1.3
      -- Date Created : 09 June 2016
      -- Last Changed : 12 November 2018
      -- HC Version : Home Center 2 v4.510
      -- Created By : Dave Harrison

      -- Purpose : To test sending data to AllThingsTalk.io
      -- Trigger : Triggered by the Timer Scene updating the fifteenMinuteTimer global variable

      -- Revision History
      -- ----------------

      -- 1.2 19-Nov-16 SmartLiving.io rebranded as AllThingsTalk.io
      -- 1.3 12-Nov-18 New authentication method

      --====================================================
      -------------------- Declaration: Local Variables
      --====================================================
      local debug = true

      local sourceTrigger = fibaro:getSourceTrigger()
      local currentDateISO = os.date("%Y-%m-%dT%XZ")
      local currentDateTime = os.time()

      local devices =
      {
      loungeTemperature = {deviceId = 28, assetId = "46259176a77ed70b83138702"},
      loungeThermostat = {deviceId = 27, assetId = "464b8ba0e8ced21cf391b773"}
      }
      --====================================================
      -------------------- Functions
      --====================================================
      local function log(str) if debug then fibaro:debug(str); end; end
      local function errorlog(str) fibaro:debug(""..str..""); end

      local function sendData (assetId, requestBody)
      local deviceToken = "maker:xxxxxxxxx" -- Replace maker:xxxxxxxxx with your Device Authentication Token
      local url = "https://api.allthingstalk.io/asset/" .. assetId .. "/state"
      local httpClient = net.HTTPClient({timeout=5000})

      local httpHeaders =
      {
      ["Authorization"] = "Bearer " .. deviceToken,
      ["Content-Type"] = "application/json",
      }

      httpClient:request(url, {
      options={
      headers = httpHeaders,
      data = requestBody,
      method = 'PUT',
      checkCertificate = false,
      timeout = 5000
      },
      success = function(response)
      if (response.status >= 200 and response.status < 300) then
      log(assetId .. ": " .. response.status .. " - successful")
      else
      errorlog(assetId .. ": " .. "ERROR")
      end
      end,
      error = function(error)
      errorlog(assetId .. ": " .. "ERROR")
      log(error)
      end
      })
      end

      --====================================================
      -------------------- Main
      --====================================================

      -- Send data to AllThingsTalk
      -- --------------------------

      local requestData = {}

      -- Check each device and format the request data
      for i, device in pairs(devices) do

      requestData = {value = tonumber(fibaro:getValue(device.deviceId, "value")), at = currentDateISO}

      local requestBody = json.encode(requestData)
      log(i .. ": " .. requestBody)

      -- Send the data
      sendData(device.assetId, requestBody)
      end

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner