HTTP Get / Post --> Sensibo

Hallo liebe Smartha Gemeinde.

Ich habe mit meiner Smartha die größte Freude.
Mittlerweile kommuniziert sie schon mit einigen meiner Geräte.

Nun bin ich gerade dabei meine Klimaanlagen (die ja dank Sensibo-Devices schon smart sind) noch smart(h)er zu machen.

Sensibo hat eine API. Über diese API bekomm ich ein json raus. In diesem Json sind alle meine Geräte mit Messwerten und BiBaBo aufgeschlüsselt.
Damit kann ich ja schon arbeiten.
Befehl:
GET https://home.sensibo.com/api/v2/users/me/pods?fields=*&apiKey={api_key}

Nun könnte ich die Geräte auch mittels POST Steuern.
POST https://home.sensibo.com/api/v2/pods/{device_id}/acStates?apiKey={api_key} -d „{„acState“:{„on“:true}}“
Welchen Knoten nehme ich hier?
Wieder den selben HTTP_Request?
Wenn ich einen Debug dahinter hinsetze kommt ‚00‘ raus, und nichts passiert.
Aber vielleicht liegt der Fehler ja auch in der Umsetzung
-d „{„acState“:{„on“:true}}“ → scheint mir nicht so das richtige Attribut zu sein.

Ich denke das hier im POST der Hund begraben ist!

Im request kannst du das einstellen mit Post:

image

und was du übergibst dazu kannst du entweder ein template nehmen.

image
So in etwa kannst Du das machen um sie zu steuern:
flows.json (1,9 KB)

Schau noch mal richtig nach ich habe jetzt nur schnell anhand deiner Daten etwas zusammen geklickt. Du muss bei JSON auf die Anführungszeichen achten ’ und „ werden nicht akzeptiert nur " die normalen nur mal als tipp ;).

Gruß
Michael

1 „Gefällt mir“

Danke Michael,
Ich komm aber dennoch nicht weiter.
Mein HTTP-Post scheint richtig zu sein. DeviceID und API funktioieren für eine andere Abfrage

Mit dem Syntax in deinem Template funktioniert das leider auch nicht.
{„acState“:{„on“:true}}
Als Debug bekomme ich immer „/00“ raus und es passiert nichts.

https://sensibo.github.io/#overview Egal was ich als Template eingebe, es ändert nichts an der ganzen Geschichte.

Hi du hast gesehen das nicht nur post dort ist sondern auch PUT und DELETE die benutzen die ganzen befehle, vielleicht liegt es daran ?
Da ich vermute niemand hat die Anlage musst du ein wenig Rumprobieren ;).
Noch ein Tipp mach kein Copy und Past sondern schreibe es selber rein damit vermeidest du Fehler die mit dem Zeichensatz zu tun haben.
Da get schon mal geht weisst du das es nur eine Kleinigkeit sein kann.

Gruß
Michael

Hallo Michael,

Danke. Ja PUT und DELETE gibt es auch. Diese Befehle benötige ich nicht.
Ich denke auch, dass es irgendwo in der JSON Ausführung hängt.

Micha hatte mal ein Programm und POST-Befehle zu senden (zum Austesten).
Mal sehen. Wird so nicht das Problem sein hier den richtigen Code zu finden!

So. Nun ist der Weihnachtsstress vorbei, und es geht munter weiter!
Ich stehe noch immer vor meinem Problem mit Sensibo.
Auf meinen Get Request bekomme ich zumindest alle Daten von meinen 4 Klimaanlagen ausgespuckt.
Nun möchte ich die Temp und Feuchtedaten in virtuelle Geräte packen. Dafür müsste ich aber die entsprechenden Werte aus dem JSON rausbekommen.
Das ist grundsätzlich ja nicht so schwer und würde mit einem Template Knoten funktionieren.
Leider sind aber die Geräte im JSON mit Zahlen versehen.
{{payload.object.result.0.measurements.temperature.}} → funktioiert leider nicht, ich denke die „0“ stört hier!
image

Hi @mexx.111,

eine Alternative zum template-Knoten waere ein kleiner function-Knoten, in dem das Objekt „auseinandergedroeselt“ und an entspr. Ausgaenge geleitet wird :thinking:

– Micha

@mscheffler Danke Micha, aber diese Idee ist für mich noch schlechter geeignet.
Ich kenn mich mit der Node-Programmierung überhaupt nicht aus, und bei der function steig ich komplett aus!
Ich häng ja noch immer daran, weil ich einfach die Kanäle nicht aufschlüsseln kann.
Eigentlich müsste ich ja mit einem json switch auch die einzelnen Werte rausbekommen, oder?

Aber wie gebe ich
payload.object.result.0.measurements.temperature.
im Node ein?
Denn die Zahlen mag er ja scheinbar nicht???
image

Hey @mexx.111,

das muss ich mir mal in Ruhe anschauen … ich kann mich dunkel dran erinnern so etwas aehnliches vor ein paar Wochen mal gemacht zu haben … :thinking:

– Micha

@mscheffler ,
Das „so etwas ähnliches“ könnte ja auch bei mir gewesen sein :wink:
Ich hätte ja noch einen schönen Fall, wo ich schon wieder hänge!

Momentan bin ich ja noch immer dabei, soviele Daten meines Hauses zu sammeln, bzw, was kann ich alles über die Smartha sehen.
Und dann fang ich mal an das alles irgendwie brauchbar zu vernetzten.

Hier ein kurzes Update!

Danke Micha!!
@mscheffler hat sich mal bei mir in die Programmierung „gehackt“
Grundsätzlich wäre der „template“ Node mit payload.object.result.0.measurements.temperature. ja richtig gewesen.
Hat aber aus irgendeinem Grund nicht funktioiert (Bug?)
Nun hat Micha den JsonSwitch eingesetzt.
Meine Smartha liest nun Status, Temperatur und Feuchtigkeit von all meinen 4 Klimaanlagen in einem Node aus!
Nächster Schritt:

  • Diese Daten in ein Virtuelles Gerät schieben, und über die Ansicht anzeigen lassen.
  • Die Geräte über die Smartha triggern. (Über die CCU3 ist das schon möglich)

Auch hier möchte ich mal ein Update geben.
Ich lese nun Temperatur, Feuchte und Status meiner Klimaanlagen aus.
Für die Temperatur und Feuchte schreibe ich die Daten in eine Variable (damit ich später wieder Kommastellen bekomme, multipliziere ich mit 100.
Den Status schiebe ich gleich in VirtuelSwitch

Da ich es über die smartha nicht geschafft habe, die Klimaanlagen zu schalten, nehme ich hier eine Variable auf der CCU
Diese schreibe ich über die smartha und auf der CCU läuft ein Skript um die Klimaanlage zu triggern.

Ich möchte aber auch die Temperatur/Feuchte angezeigt bekommen, deshalb mache ich aus allen möglichen Temperaturmessgeräten einen Durchschnittswert, und schreibe diesen in ein VirtuelThermometer.
Und damit ich ein Komma rausbekomme, dividiere ich hier wieder die Potenz raus.
image
image

1 „Gefällt mir“

Es eröffnen sich wieder neue ungeahnte Möglichkeiten!
Danke an @Vegas
Ich wäre nie auf die Idee gekommen Node-Red Flows zu importieren!
Auf Node-Red gibts schon ein Sensibo AddOn
Dieses funktioniert auch hier!!!
Hier der Testflow!!
image
Sehr genial!!!

2 „Gefällt mir“

Hallo mexx.111
Bin erst seit kurzem mit CCU3 / NEO / RED NODE / Sensibo zu Gange
und auf deinen Beitrag gestoßen. Meine Kenntnisse zu RED NODE halten sich in Grenzen.
Der Stand ist:
Mit den NODE’ s zu Sensibo kann ich die Temperatur und die Luftfeuchtigkeit von Sensibo API auslesen und in der CCU3 verarbeiten und in NEO visualisieren. Mir fehlen aber die Kenntnisse zur Parametrierung der NODE’s. Auf die es ankommt habe rot eingerahmt.
Meine Bitte: kannst du mir helfen und einen Screenshot der der Parameter diese NODE’s senden?
Wäre dir sehr dankbar!

digihotte
Sensibo steuern

Status

Hallo,
es gib zwei sensibo notes:
grafik

Eigentlich sind die notes für Note-red erstellt worden, sind aber auch unter note-blue lauffähig.

Mit „sensibo in“ verbindet man sich mit der Cloud und kann einige Werte abfragen…

… und mit sensibo send … kann man die Werte schreiben bzw setzen.

Zuerst muss man in der node einen Cloud Zugang anlegen.
POD = Ist der Name des Gerät das man in der Cloud angelegt hat , bzw. die UID des Geräts .

grafik
grafik

Hier trägt man den API Key ein den man auf der Cloud Webseite bekommt.

Eine Abfrage habe ich wie folgt erstellt. Sensibo in (Hacken bei „Get AC State)

grafik

in der funktion node steht ,
grafik

und schreibe den wert in ein Gerät oder variable…

so wie bei der target Temperatur…
grafik

Das setzten der Werte habe ich wie folgt gemacht:

Temperatur setzten:
grafik

function:
grafik

und das sensibo send note:
grafik

Mit dem Beispiel kannst du die AcState werde sehen, die man setzten kann.
grafik

Die sollten sein:
grafik

Wenn du alle Werte sehen möchtest kann man die gesamten Werte ausgeben:

grafik

Setze beim sensibo node den Hacken „Get Config“

grafik

… dann sollte man alles sehen----

grafik

ein Beispiel zum abfragen des Filters:

grafik

Volker

WAHNSINN !
Ich bedanke mich herzlich - das sind die Informationen, die ich gesucht und gebraucht habe.
Kompetent und komplett, das man es auch sofort verstehen kann.
Herzlichen Dank
digihotte

Hallo Volker
Ich habe die letzten Tage versucht die Funktionen so zu programmieren, wie du die Beispiele vorgegeben hast.
Aber … die Syntax im Node „Funktion“ funktioniert bei mir nicht.
Habe jetzt so lange experimentiert, dass ich die Temperaturen und was auch immer lesen kann. hier mal als Beispiel Temp&Hum / sowie Status der der AC:
Temperatur & Feuchte lesen

var TEMP = msg.result.measurements.temperature;
var HUM = msg.result.measurements.humidity;

msg.payload = {„svalue“:TEMP + „;“ + HUM};
return msg;


Status lesen

var AC_State = msg.result.acState.on;
msg.payload ={„svalue“:AC_State};
return msg;


Die Syntax für das Senden bekomme ich aber nicht hin (natürlich mit Node „Sensibo send“) .
Ich habe RED NODE im Einsatz.