XML-RPC statt BIN-RPC brachte die Lösung. Danke für die Screenshots!
NEWS
Best posts made by drloksoft
-
RE: Homematic CCU3 hm-rpc bleibt gelb
-
RE: iobroker startet nicht nach hm.rega update
@homoran
Mit meinem normalen User bekam ich keinen Pfad angezeigt, da er keine bash zugewiesen hatte.Für alle, die ein ähnliches Szenario haben, kann man einfach mittels kommando
bash
als eben dieser user diesem User eine bash geben. Um das Ganze dauerhaft einzustellen, hilft folgender commandsudo /usr/sbin/usermod -s /bin/bash USERNAME
Wobei USERNAME der name des benutzers sein soll. Der User sollte auch in der Lage sein, sudo nutzen zu dürfen. Wenn dem nicht der fall ist, kann der command entweder als root ausgeführt werden, oder root gibt dem user mit dem command
adduser USERNAME sudo
die Rechte, um sudo nutzen zu dürfen.
Nach einem re-login, sieht es dann der prompt aus:
drloksoft@infrarot:/usr$
Latest posts made by drloksoft
-
RE: Dynamisches Licht - Farbverlauf Tag/Nacht
@denis1988 @Burg_Io
Erstmal dank an @Malaus und @el_malto für die initiale Diskussion und die Idee!
Danke an @FluffyIronBoots für das neue Script.Ich habe das Script von @FluffyIronBoots in meinen Common Ordner kopiert und gestartet. Die Datenpunkte werden erstellt.
Die log datenpunkte fehlen allerdings auch bei mir
javascript.0.Dynamisches_Licht.Hilfswert_Brightness_log (Typ: number)
javascript.0.Dynamisches_Licht.Hilfswert_Kelvin_log (Typ: number)
In der Objekt-Ansicht kann ich keine neuen Objekte erstellen (schaltfläche grau).Der Hilfswert_Kelvin gleibt bei mir stoisch auf 5000K.
Der Hilfswert_brightness bleibt auf 70%.
Im log sehe ich allerdings nicht.Muss ich eigentlich einen schedule für das Script anlegen, oder läuft es dauerhaft vollautomatisch (oder sollte es zumindest), sobald ich es gestartet habe?
Hat noch jemand einen Tipp für mich?
Vielen Dank!! -
RE: Blockly Steuerung von Homematic Dimmer mit Hue Tap Dial
@paul53 perfekt, danke Dir!
-
Blockly Steuerung von Homematic Dimmer mit Hue Tap Dial
Hallo,
ich möchte mit dem Post lediglich die Verknüpfung des Philips Hue Tap Dial Switch und einem Homematic Dimmer in einem Blockly Script zeigen, da ich mich immer gefragt habe, ob es wohl funktioniert den Hue Switch mit einem Homematic Dimmer zu verbinden und ich keine Dokumentation dazu gefunden habe. Wenn jemand einen Optimierungsvorschlag hat, begrüße ich diesen sehr.
Da ich durch einen neuen Küchenschrank meinen Homematic-Dimmer für die Deckenleuchte in der Küche hinter dem Schrank versteckt habe (es war sonst kein Platz mehr da), wollte ich den Dimmer nun extern steuern, damit ich die Küchenlampe wieder an- und ausschalten kann.
Ich habe als Option einen Homematic 6-fach Taster und einen Philips Hue Tap Dial Schalter ausgesucht. Da der Tap Dial Schalter mit 39€ preiswerter als der Homematic Taster mit 69€ ist und ich damit auch noch dimmen kann, habe ich mich für diesen entschieden.
Den Tap Dial Schalter habe mit in der Hue App auf meinem iPhone ins Hue-System eingefügt, damit ich ihn dann in IOBROKER sehen kann.
Nun habe ich ein Blockly Script erstellt, welches auf den ButtonEvent 1002 anspricht (erster Knopf). Je nach Level des Dimmers schaltet nun der erste Schalter die Lampe ein oder aus.
Nun wollte ich noch die Lampe dimmen können, sodass ich ein separates Blockly Script erstellt habe, welches auf den Dreh-Ring reagiert. Ich habe hier den Dreh-Radius, der in Grad angegeben wird, noch mal durch 4 geteilt, da jede kleine Bewegung gleich 5° ausmacht und ich daher sehr schnell gedimmt habe.
Das fertige Script sieht dann so aus:
Ich glaube, dass ich mir den ELSE Pfad durchaus hätte sparen können.
Funktioniert aber gut so! -
RE: Hue Tap Dial Switch Drehschalter
@Tomek-Napierala hast Du den Hue Tap Dial schalter mit IOBROKER so erbinden können, dass Du damit alle möglichen Events starten kannst, oder gelingt es mit dem Schalter nicht? Wenn ja, kann ich jeden Taster mehrfach belegen wie
- klick
- doppelklick
- long press
Viele Grüße
Jürgen
-
LED RGB-CCT Strip mit iobroker steuern
Hi Leute,
nach einer Stunde suchen und lesen komme ich dazu einen eigenen Thread zu schreiben, da ich nicht fündig geworden bin. Ich habe gleich mehrere Fragen, wobei die meisten lediglich dem Verständnis dienen.Ich möchte gerne drei unabhängige RGB-CCT Streifen mittels IOBROKER steuern. Die Strips kommen an, bzw. in die Decke. Darüber hinaus möchte ich zwei LED-Panels unabhängig voneinander steuern. Für die Strips habe ich einen 5-in-1 2.4GHz Controller von MiBoxer gekauft, der nur 2.4GHz kann.
Die LED-Panels von PURPL kommen mit einem MiBoxer 3-in-1-Controller mit WiFi und 2.4GHz.
Nun stehe ich da mit meinem ungesundem Halbwissen ...
So wie ich es mittlerweile verstanden habe, komme ich an einen 2.4GHz Controller über IOBROKER nicht heran. Kann mir das jemand bestätigen?
Komme ich irgendwie per WiFi an den WiFi/2.4GHz controller?
EDIT: Ja, ich komme über die TUYA App an den Controller und mit dem TUYA Adapter und den gleichen Login Credentials komme ich auch per IOBROKER an den WiFi Controller. Allerdings frage ich mich, ob der Request über die TUYA Cloud geht, oder ich direkt da ran komme.
Kann ich mit einer MiBoxer WiFi 2.4GHz Bridge mehrere 2.4GHz controller verbinden und die Bridge dann mit IOBROKER ansteuern?
EDIT: Ja, das geht. Ich habe es nun mit 2 5-in-1 LS2 Controllern an einer WL-BOX2 getestet. Aktuell kann ich in der Box 5 Zonen konfigurieren. Ich werde noch weitere Controller kaufen, um zu testen, ob ich alle 5 Kanäle benutzen kann, aber es sieht gut aus. In dem Tuya Adapter im IOBROKER muss ich zwar erst mittels "Choose_zone" die Zone einstellen und kann dann in der Zone herum editieren, aber das ollte sich ja in scripten lösen lassen.
Oder ist das alles murks und ich muss Zigbee-fähige Controller nehmen, die ich dann mit meinem vorhandenen ZigBee Adapter ansteuern kann?
Ich danke schon jetzt herzlich für Eure Hilfe!
-
RE: MiBoxer 5in1 LED Controller API
@sven-reichert hast Du eine andere Möglichkeit gefunden? Ich habe mir ein paar LED Strips gekauft, die einen Miboxer LS2 5-in-1-controller dabei haben. Dieser kann allerdings nur "2.4GHz". Um ehrlich zu sein, verstehe ich nicht, wie ich diesen ansteuern soll. Ich habe gesehen, dass es ein WiFi Gateway von MiBoxer gibt. Muss ich das dazu kaufen?
-
Yahka Homekit Taster als Türöffner mit Homematic
Hallo,
ich möchte gerne, um mittels Homekit den hm-sec-key ansteuern zu können, einen virtuellen Schalter entwickeln, der sich automatisch wieder ausschaltet, damit ich beim anschalten des virtuellen Schalters aus Homekit den Türöffner triggern kann und diesen nach einer Sekunde automatisch wieder ausschalte.So kann ich ziemlich simpel mit meinem iPhone oder auch Siri den Schalter "Haustuer" anschalten, um die Haustür zu öffnen. Ja, mir ist klar, dass es ein Sicherheitsrisiko geben könnte, wenn Siri von allein fälschlicherweise versteht, dass ich die Haustüre öffnen möchte und dass wenn jeman mein Telefon klaut, er/sie damit meine Haustür öffnen könnte (was aber auch funktioniert, wenn jemand meinen Haustürschlüssel klaut).
Was habe ich gemacht?
1.) HM-SEC-KEY in Homematic installiert - somit ist der auch in IOBROKER sichtbar
2.) Systemvariable "Haustueroeffner" in IOBROKER erstellt
3.) Im Yahka Adapter einen Schalter erstellt, welcher die Variable "Haustueroeffner" einschalten kann
4.) ein Blockly Script erstellt, welches bei Änderung von "Haustueroeffner" auf "true" reagiert, dann den HM-SEC-KEY namens "Haustuer:1.OPEN" auf "true schaltet", nach 1000ms wieder "false" schaltet und auch nach 1000ms die Variable "Haustueroeffner" wieder auf "false" setzt.
Das Ganze sieht dann so aus:
Es funktioniert wirklich reibungslos!
Das Script muss ich initial in IOBROKER anschalten. Kann ich irgendwie sicherstellen, dass es bei einem Reboot (z.B. durch Stromausfall) automatisch wieder angeschaltet wird, oder passiert da ohnehin automatisch?
Hat sonst noch jemand kritische Hinweise zu meinem Türöffner?
Dankeschööön!
-
RE: Internet Filter in der Fritzbox mit JavaScript setzen
EDIT: GELÖST! Ich lasse es aber dennoch hier stehen. Lösung unten!
Okay,
ich bin lost und muss noch mal eine Frage zum Verständnis stellen, da ich nicht mehrere Geräte mit multiplen buttons in VIS bei Verwendung nur eines Scriptes steuern kann. Über Eure Hilfe würde ich mich sehr freuenIch habe "DeviceFilterListJson" automatisch befüllen lassen. Das hat funktioniert!
Unter anderem gibt es einen Eintrag:{ "Device": "iPhone-3", "Profile ID": "filtprof7324", "Profile Name": "Kidsclub", "Usage": "Gesperrt durch Zugangsprofil", "Time": "Onlinezeit aufgebraucht" },
Ich habe einen Datenpunkt vom Typ String angelegt.
{ "common": { "name": "Fire2", "desc": "Manually created", "role": "state", "type": "string", "read": true, "write": true, "def": "" }, "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1655649177519, "_id": "0_userdata.0.Fire2", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Nun ändere ich entweder über VIS oder manuell den Datenpunkt zu
iPhone-3;filtprof1
Oder eben zu
iPhone-3;filtprof7324
(was die ID zum Profil "Kidsclub" ist)
Im Log ist allerdings nichts zu sehen und in der Fritzbox tut sich auch nichts.
Meine Settings:
// Die IP Der Fritzbox const FbIp = "192.168.0.1"; // Der User der Fritzbox // HINWEIS : Den Benutzer leer lassen wenn die Anmeldung an der FB nur mit Passwort erfolgt ! const FbUser = "filter"; // Das Password der Fritzbox const FbPassword = "filter"; // welcher Rechner soll "bearbeitet" werden var FbDevice = ""; // Das neue Profil für den Rechner var FbProfile = ""; // erweitertes Logging aktivieren für Fehlersuche const FbDebugging = true; // Keine Änderung an der Fritzbox (true) -> Listet dann nur alle Profile und Rechner const FbListOnly = false; // Device / Filter Liste erzeugen Ja (true), Nein (false) const FbCreateList = false; // Datenpunkt (string) für einen automatischen Script Start (muss angelegt werden!) // Der Datenpunkt wir mit Device;Profil beschrieben. Bsp: Comp-L-Pi;filtprof1 const FbIobObject = "0_userdata.0.ChangeDeviceFilter" // Datenpunkt in den die Device / Filter Liste als JSON geschrieben wird const FbIobJsonList = "0_userdata.0.DeviceFilterListJson" var secChallenge; var secMd5; var secLogin; var secSid; var secProfileNames = []; var secProfileIds = []; var secDeviceNames = []; var secDeviceIds = []; var JsonList = ""; /******************************************************* * Object Trigger Version * Wenn auf einen Datenpunkt getriggert werden soll, dann muss der folgende Block auskommentiert werden. * FbIobObject muss mit einem string Datenpunkt versehen werden. * Den Static Teil dann auskommentieren ! * Diese Variante erlaubt es das Script dynamisch für alle Devices / Profile der FB zu verwenden. *******************************************************/ on({id: FbIobObject, change: "ne"}, function (obj) { console.log("Profile Changer started ... (Version : " + Version + ")"); var data = obj.state.val.split(";"); if (data.length != 2) { console.log("Wrong parameter : " + obj.state.val); return; } if (FbDebugging){ console.log(" > Datapoint : " + data); } console.log("Computer : " + data[0]); console.log("Filter : " + data[1]); FbDevice = data[0]; FbProfile = data[1]; getFbChallenge(); console.log("Profile Changer done"); }); /******************************************************* * Static Version * Die folgenden 3 Zeilen lassen das Script sofort laufen. * Dabei sollte der Object Trigger Block auskommentiert werden. *******************************************************/ //console.log("Profile Changer started ... (Version : " + Version + ")"); //getFbChallenge(); //console.log("Profile Changer done"); // Get the Challenge String from the FritzBox // Compute the md5 Hash function getFbChallenge(){ console.log("function getFbChallenge"); request.get({ url: 'http://' + FbIp + '/login_sid.lua?username=' + FbUser, headers: headers }, function(error, response, body) { if (error) log(error, 'error'); //console.log(response); // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp // <?xml version="1.0" encoding="utf-8"?><SessionInfo><SID>0000000000000000</SID><Challenge>d36de231</Challenge><BlockTime>0</BlockTime><Rights></Rights></SessionI secChallenge = body.match(/Challenge>(.*)<\/Challenge/)[1]; console.log(" > Challenge : " + secChallenge); var uft16le = str2rstr_utf16le(secChallenge + "-" +FbPassword ); var md5 = rstr_md5(uft16le); secMd5 = rstr2hex(md5); console.log(" > MD5 : " + secMd5); // response="${challenge}-${md5}" // sid=$(curl -i -s -k -d "response=${response}&username=" "http://$1" | grep -Po -m 1 '(?<=sid=)[a-f\d]+' | tail -1) secLogin = "response=" + secChallenge + "-" + secMd5 + "&username=" + FbUser; console.log(" > Login : " + secLogin); getFbSid(); }); } .... und so weiter ....
Die beiden Datenpunkte vom Typ String existieren natürlich im IOB:
const FbIobObject = "0_userdata.0.ChangeDeviceFilter"
const FbIobJsonList = "0_userdata.0.DeviceFilterListJson"Jede Hilfe ist mir SEHR willkommen ...
DANKE!Ich bin so bescheuert. Natürlich muss ich die Änderungen in den Datenpunkt "ChangeDeviceFilter" packen und nicht in einen X-Beliebigen ...
-
RE: Internet Filter in der Fritzbox mit JavaScript setzen
Hi Leute,
erstmal vielen Dank für das Mega-Script. Da die Kinder nun mit mehreren Geräten unterwegs sind (Switch und Android), möchte ich gerne alle Geräte gleichzeitig sperren, bzw. freigeben. Könnte ich mit dem Script auch "einfach" die Einstellung zum Zeitraum von "immer" auf "nie" setzen und die Geräte einfach immer in dem Profil lassen? So spare ich mir mehrere Knöpfe.
-
RE: iobroker startet nicht nach hm.rega update
@homoran
Mit meinem normalen User bekam ich keinen Pfad angezeigt, da er keine bash zugewiesen hatte.Für alle, die ein ähnliches Szenario haben, kann man einfach mittels kommando
bash
als eben dieser user diesem User eine bash geben. Um das Ganze dauerhaft einzustellen, hilft folgender commandsudo /usr/sbin/usermod -s /bin/bash USERNAME
Wobei USERNAME der name des benutzers sein soll. Der User sollte auch in der Lage sein, sudo nutzen zu dürfen. Wenn dem nicht der fall ist, kann der command entweder als root ausgeführt werden, oder root gibt dem user mit dem command
adduser USERNAME sudo
die Rechte, um sudo nutzen zu dürfen.
Nach einem re-login, sieht es dann der prompt aus:
drloksoft@infrarot:/usr$