Posts by Master29f

    Hallo zusammen,

    ich habe absolut keine Ahnung von IOBroker…aber wieso will das Binding mit der Zentrale auf Port 3000 sprechen?

    Es geht hierbei darum, den Token, der durch die Oauth-Cloud Anmeldung generiert wird, an den Adapter weiterzuleiten. Hierfür muss der Adapter einen Webserver hosten, dieser läuft bei dem Adapter auf Port 3000.


    Wenn man aber die lokale Anbindung nutzt, muss man sich ja nicht über die Cloud authentifizieren. Daher muss man auch nicht oben auf "Start Authorization" drücken. Man muss nur die Lokale Ip der SH und das Lokale Passwort eingeben und dann auf speichern und schließen drücken. Vielleicht muss man dann noch den Adapter neustarten. Dann sollte es aber funktionieren.

    Hallo NOGE2016,

    ich würde dir empfehlen, zunächst Geräte (An/Aus) von IObroker via Smarthome Zustände in das Smarthome einzubinden. Hierfür verwende ich Node-Red. Dort kann man auch flows exportieren und wieder importieren. Ebenfalls kann man dort ebenfalls Nodes importieren, was die Erweiterungsmöglichkeiten vergrößert.

    Ich habe zum Beispiel mein Radio, oder Nanoleafs so als Zustand eingebunden. Der einzige Nachteil hiervon, ist das diese Zustände nicht in den Virtuellen Bewohner hinzugefügt werden können.

    Bei Fragen einfach Melden.

    Mit Freundlichen Grüßen

    Master29f

    Hallo zusammen.

    Ich habe eine Lösung gefunden, wie man Zustände von per HTTP-Request abfragen kann und dann ein Passendes Szenario ausführen kann. Der Trick dahinter ist, dass man per HTTP Antwort - Während gleich den Zustand einer HTTP-Request abfragen kann. Der Zustand ist "in Bearbeitung", wenn die HTTP-Request noch zum Zeitpunkt der Abfrage nicht beendet ist.

    Die HTTP-Request geht an einen HTTP-Server, der die Dauer der HTTP-Verbindung je nach Zustand einer Variable ändert. (z.B. True: keine Verzögerung False: 5 Sekunden). Wenn man nun die HTTP-Request startet, eine Sekunde wartet und dann den Zustand abfragt. Bekommt man raus, ob der Zustand "Erfolgreich" oder "in Bearbeitung" ist. Also ob er true oder false ist.

    Hier ein Beispiel:

    Man braucht zwei Zustände und ein "HTTP-Anfrage".

    Regel1:

    Der Zustand "test" braucht eine Verzögerung von mind. 1. Sekunde.

    Regel 2:

    Regel 3:

    Ihr könnt TestZustand auch durch ein Gerät ändern.

    Der Node-Red Flow sieht so bei mir aus:

    [{"id":"42234027.af965","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"dc8dd0d0.0d7d9","type":"http in","z":"42234027.af965","name":"","url":"test11","method":"get","upload":false,"swaggerDoc":"","x":70,"y":140,"wires":[["5ee352f2.1e995c"]]},{"id":"c0005ebd.9d02","type":"http response","z":"42234027.af965","name":"","statusCode":"200","headers":{},"x":720,"y":160,"wires":[]},{"id":"3aa9ce4d.0df2c2","type":"delay","z":"42234027.af965","name":"","pauseType":"delay","timeout":"3","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":720,"y":120,"wires":[["c0005ebd.9d02"]]},{"id":"1cf431cd.9ec48e","type":"switch","z":"42234027.af965","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"},{"t":"eq","v":"true","vt":"str"},{"t":"eq","v":"false","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":530,"y":140,"wires":[["3aa9ce4d.0df2c2"],["c0005ebd.9d02"],["3aa9ce4d.0df2c2"],["c0005ebd.9d02"]]},{"id":"5ee352f2.1e995c","type":"ioBroker get","z":"42234027.af965","name":"","topic":"yamaha.0.power","attrname":"payload","payloadType":"value","x":270,"y":140,"wires":[["1cf431cd.9ec48e"]]}]

    Wenn ihr noch Frage und/oder Probleme habt, fragt einfach hier oder schreibt mir eine DM.

    Mit freundlichen Grüßen

    Master29f

    Hallo MAXREINER,

    Das geht auch mit ioBroker. Ich nutze hierfür das Binding Node-Red. Hier kann man einfach "http-in" node nutzen. Hier kannst du dir dann einfach eine URL eingeben. Wenn diese dann aufgerufen wird, wird der dahinter gehängte Flow ausgelöst. Dort kannst du dann die Zustände von Iobroker ändern. Du solltest noch die Http-Response Node anhängen, da sonnst die HTTP Verbindung nicht richtig beendet wird. Du kannst dort auch mit Url Parametern arbeiten. Die liegen dann bei msg.payload.[Name des Parameters]

    Mit Freundlichen Grüßen

    Master29f

    Hallo Livisi,

    plant ihr Zwei Faktor Authentifizierung für Smarthome Accounts zu ermöglichen? Dies würde die Sicherheit euers Systems deutlich erhöhen. Besonders wünschen würde ich mir, wenn ihr FIDO U2F mit implementieren könntet.

    Mit freundlichen Grüßen

    Master29f

    Hallo Perkins,

    dies ist mit Livisi Smarthome möglich.

    Hierfür solltest du das Gerät HTTP-Anfrage hinzufügen. Dies sollte dann so aussehen.


    Danach legst du ein neues Szenario an.

    Regel 1:

    Wenn Geöffnet / Geschlossen - alle Geräte - Geöffnet wird

    Dann: HTTP-Anfrage - Das HTTP-Gerät - GET-Anfrage - Parameter: "CMD=LCD,1,1, Fenster geöffnet"


    Regel 2:

    Wenn Geöffnet / Geschlossen - alle Geräte - Zustandsänderung

    Und Geöffnet / Geschlossen - alle Geräte - Geschlossen

    Dann: HTTP-Anfrage - Das HTTP-Gerät - GET-Anfrage - Parameter: "CMD=LCD,1,1,alle Fenster sind geschlossen "

    Wenn du Rückfragen hast, melde dich einfach.


    Mit freundlichen Grüßen

    Master29f

    Ich denke, das es auch eine Lösung wäre, dass man zum Beispiel nur 10 HmIP Geräte über die Antenne der Zentrale hinzufügen kann, aber man einen Homematic IP - Accesspoint einbinden kann, der dann dieses Limit auflöst. Dadurch wären Nutzer, die auch Homematic IP nutzen wollen nicht abgeschreckt, eine Accesspoint kaufen zu müssen und andererseits könnten Benutzer auch deutlich mehr Geräte einbinden. Diese wären dann meistens auch bereit, die 50€ für einen HmIP AP zu bezahlen.

    Alles natürlich ohne Gewähr

    Was wird benötigt:

    • Eine Stereoanlage die Kompatibel ist z. B. Yamaha RX V675
    • Eine innogy Smarthome Zentrale
    • Das innogy Smarthome-Software Plugin „HTTPRequest“
    • Einen Medion oder Innogy Zwischenstecker

    Ist meine Stereoanlage kompatibel?

    Führe dies in der Powershell aus ({ip} durch die IP ersetzen):

    Code
    Invoke-WebRequest -Uri "http://{ip}/YamahaRemoteControl/ctrl" -Method "POST" -Headers @{"Origin"="http://{ip}"; "Accept-Encoding"="gzip, deflate"; "Accept-Language"="de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"; "Accept"="*/*"; "Referer"="http://{ip}/"} -ContentType "text/xml" -Body "<YAMAHA_AV cmd=`"GET`"><System><Misc><Network><Network_Standby>GetParam</Network_Standby></Network></Misc></System></YAMAHA_AV>"@@@WCF_PRE_LINEBREAK@@@

    Wenn die Konsole ein ähnlicher Output ausgibt ist deine kompatibel:

    Die Einrichtung

    Der Zwischenstecker

    Als erstes steckst du den Zwischenstecker in eine Steckdose ein, die du nicht brauchst. Nun bindest du ihn ganz normal ein. Nenne ihn Stereoanlage und kategorisiere ihn in Entertainment.


    HTTPRequest Füge ein neues http-Gerät hinzu. Nenne es „Steroanlage-HTTP-API“. Als URL setzt du „http://{ip}/YamahaRemoteControl/ctrl“ (Auch hier {ip} durch die IP ersetzen).


    Zustand Der Zustand wird nur benötigt falls man von anderen Szenarios den An/aus Zustand aktualisieren möchte. (nicht ändern). Da es sonst immer das Radio an und aus gehen würde. Du benennst den Zustand „Stereoanlage-wird-aktualisiert“.


    Szenario Nun legst du ein Szenario mit dem Namen „Stereoanlage“ an.


    Regel 1

    „Stereoanlage“ Eingeschaltet wird UND der Zustand „Stereoanlage-wird-aktualisiert“ auf Nein gesetzt DANN

    HTTP-Anfrage „Steroanlage-HTTP-API“ POST (<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><Main_Zone><PowerControl><Power>On</Power></PowerControl></MainZone></YAMAHAAV>)


    Regel 2

    WENN

    „Stereoanlage“ Ausgeschaltet wird UND der Zustand „Stereoanlage-wird-aktualisiert“ auf Nein gesetzt

    DANN

    HTTP-Anfrage „Steroanlage-HTTP-API“ POST (<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power> Standby</Power></Power_Control></MainZone></YAMAHAAV>)


    Ende

    Wenn ihr noch Fragen habt oder Probleme schreibt einfach eine Antwort. Leider ersetzt das Eingabefeld 1.0 als 1,0. Ihr könnt dies aber in den Entwicklertools des Browsers ändern.

    Master29f

    Habe derzeit diese HTTP-Requests laufen, alles sind PHP Skripts auf meinem Webse...

    Was für ein TV hast du bzw welche sind mit deinem Script kompatibel? Ich habe bei meinem TV nur die Funktion gefunden ihn auszuschalten.

    Ich steuere unsere Stereoanlage hiermit. Ich habe mir in Java ein passendes Programm geschrieben, das einen Webserver mit einer API öffnet. (Ich nutze die UPNP.-Schnittstelle zur Kommunikation mit der Stereoanlage)

    Wenn ich noch Zustandsänderungen implementiert habe werde ich ein How-To schreiben.