Bluetooth smartlock per HM steuern
Moderator: Co-Administratoren
Re: Bluetooth smartlock per HM steuern
Frohe Weihnachten erst mal an alle!
So ich hoffe mir kann jemand einen Tipp geben.
Ich frage den Status des Nuki via Alchy Script an.
Dieser wird in die Var. Nuki Status (Zeichenkette) geschrieben ( dies klappt alles).
Jetzt möchte ich aber auf diesen abgefragtes Status reagieren.
Sprich
Wenn "Nuki Status"-zugesperrt ( zugesperrt schreibe ich ja hier in das feld da es sich ja um Typ Zeichenkette handelt.
Dann Aktion xy ( bei mir zum testen als Pushover Script mit Benachrichtigung.
Habe ein Programm geschrieben
Wenn aufgesperrt
Dann Push.
Sonst wenn
Zugesperrt
Dann Push.
Habe diese Programme auch schon als zwei einzelne geschrieben.
Geht aber nur bei der ersten Status Änderung.
So ich hoffe mir kann jemand einen Tipp geben.
Ich frage den Status des Nuki via Alchy Script an.
Dieser wird in die Var. Nuki Status (Zeichenkette) geschrieben ( dies klappt alles).
Jetzt möchte ich aber auf diesen abgefragtes Status reagieren.
Sprich
Wenn "Nuki Status"-zugesperrt ( zugesperrt schreibe ich ja hier in das feld da es sich ja um Typ Zeichenkette handelt.
Dann Aktion xy ( bei mir zum testen als Pushover Script mit Benachrichtigung.
Habe ein Programm geschrieben
Wenn aufgesperrt
Dann Push.
Sonst wenn
Zugesperrt
Dann Push.
Habe diese Programme auch schon als zwei einzelne geschrieben.
Geht aber nur bei der ersten Status Änderung.
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Bluetooth smartlock per HM steuern
Ein Vergleich von Zeichenkettenvariablen darf nicht alleine stehen, soweit ich mich erinnere.
Hab ich auch schon irgendwo gepostet. Entweder du nimmst einen weiteren Trigger mit ins Programm, oder du nimmst den gleichen Zeichenkettenvergleich doppelt auf. Also:
Wenn
Systemvariable X = aufgesperrt
oder
Systemvariable X = aufgesperrt
Dann
...
Grundsätzlich macht das aber wenig Sinn, du kannst ja im ermittelnden Script gleich pushen.
Ein Link zum verwendeten Script?
Alchy
Hab ich auch schon irgendwo gepostet. Entweder du nimmst einen weiteren Trigger mit ins Programm, oder du nimmst den gleichen Zeichenkettenvergleich doppelt auf. Also:
Wenn
Systemvariable X = aufgesperrt
oder
Systemvariable X = aufgesperrt
Dann
...
Grundsätzlich macht das aber wenig Sinn, du kannst ja im ermittelnden Script gleich pushen.
Ein Link zum verwendeten Script?
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
Re: Bluetooth smartlock per HM steuern
Hi Alchy!
Ich schaue mir das nachher nochmal an.
Bin unterwegs.
Danke
Ich schaue mir das nachher nochmal an.
Bin unterwegs.
Danke
Bluetooth smartlock per HM steuern
Achso Script ist deine Status Abfrage Version 0.4
Aus diesem Thread Beitrag #51
Aus diesem Thread Beitrag #51
Re: Bluetooth smartlock per HM steuern
Also die Variante wie hier beschrieben funktioniert.alchy hat geschrieben:Ein Vergleich von Zeichenkettenvariablen darf nicht alleine stehen, soweit ich mich erinnere.
Hab ich auch schon irgendwo gepostet. Entweder du nimmst einen weiteren Trigger mit ins Programm, oder du nimmst den gleichen Zeichenkettenvergleich doppelt auf. Also:
Wenn
Systemvariable X = aufgesperrt
oder
Systemvariable X = aufgesperrt
Dann
...
Grundsätzlich macht das aber wenig Sinn, du kannst ja im ermittelnden Script gleich pushen.
Ein Link zum verwendeten Script?
Alchy
Wenn xy =aufgesperrt
Oder
Wenn xy=aufgesperrt
Das dies aber wenig Sinn macht kannst du gerne noch weiter erklären.
Wie das aus dem Script geht da bist du wohl der MEISTER drin.
Ich benutze zum pushen ein einfaches Pushover Script von dir!
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Bluetooth smartlock per HM steuern
Problem gelösttris08 hat geschrieben: Also die Variante wie hier beschrieben funktioniert.
Wenn xy =aufgesperrt
Oder
Wenn xy=aufgesperrt
hab ich mich vielleicht falsch ausgedrückt.tris08 hat geschrieben: Das dies aber wenig Sinn macht kannst du gerne noch weiter erklären.
Wie das aus dem Script geht da bist du wohl der MEISTER drin.
Was Sinn oder nicht Sinn macht, entscheidet nur der User selbst.
Da im Script schon dieselbe Abfrage gemacht wird, muss man ja mit einem weiteren Programm nicht noch einmal abfragen.
Natürlich gibt es auch dabei wieder unterschiedliche Wege
Wenn du z.B. nur eine Nachricht bekommen willst, wenn die Nuki verschlossen meldet.
wäre ein möglicher Vorschlag die Zeile:
Code: Alles auswählen
if (tmp2 == 1) { string nachricht = "Nuki abgesperrt"; dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k -d token=++++++EIGENERTOKEN+++++ -d user=+++++EIGENERUSERKEY++++++ -d message='"#nachricht#"', -d priority=1 http://api.pushover.net/1/messages.json"); }
unter das speichern des Zustandes in die Systemvariable
Code: Alles auswählen
...
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTSTAT).State(state);
Das solltes es schon gewesen sein. Meister, nö - da bin ich weit von entfernt. Aber ich komme klar.
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
Re: Bluetooth smartlock per HM steuern
Also das sind immer noch sachen die ich einfach nicht kapier!
Was soll ich hiermit jetzt machen ?
ein neues Programm erstellen oder diese zeilen bei deinem abfrage script 0.4 einfügen?
Wobei die andere Variante prima funktioniert.
wenn du lust hast kannst du es ja nocmal kurz aufmalen.
im nächten leben werde ich programmierer!
Was soll ich hiermit jetzt machen ?
ein neues Programm erstellen oder diese zeilen bei deinem abfrage script 0.4 einfügen?
Wobei die andere Variante prima funktioniert.
wenn du lust hast kannst du es ja nocmal kurz aufmalen.
im nächten leben werde ich programmierer!
Zuletzt geändert von alchy am 27.12.2016, 16:09, insgesamt 1-mal geändert.
Grund: sinnloses und falsches Fullquote entfernt
Grund: sinnloses und falsches Fullquote entfernt
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Bluetooth smartlock per HM steuern
Eigentlich so wie ich es geschrieben habe
Nun musst du nur noch UNTEN IM SCRIPT deine Daten in das Script einsetzen für: ++++++EIGENERTOKEN+++++ und +++++EIGENERUSERKEY++++++
Dieses Script ERSETZT dann deine alte Version.
Alchy
Code: Alles auswählen
! Nuki Hardware Bridge Status auslesen by Alchy v 0.4a
! und bei verschlossen eine Pushovernachricht absenden
var OUTPUTSTAT = "Nuki_Status"; ! Name der Variablen, wo der Status gespeichert wird (Nuki_Status)
var OUTPUTBAT = "Nuki_Batterie"; ! Name der Variablen, wo der Batteriestatus gespeichert wird (Nuki_Batterie)
var url = "http://192.168.178.64:96/lockState?nukiID=99365833&token=123oli";
! +++++++++++++ AB HIER FINGER WEG +++++++++++++++++
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
srueck = srueck.Substr(1, srueck.Length()-2);
var tmp1 = srueck.StrValueByIndex(",",2).StrValueByIndex(":",1); ! battery
integer tmp2 = (srueck.StrValueByIndex(",",0).StrValueByIndex(":",1)).ToInteger(); ! state
var tmp3 = srueck.StrValueByIndex(",",3).StrValueByIndex(":",1); ! success
if (tmp3.Find("true")>-1) {
if (tmp1.Find("true")>-1) { (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTBAT).State("BATTERIEZUSTAND KRITISCH"); } else { (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTBAT).State("BATTERIEZUSTAND OK"); }
string state = "unbekannt";
if (tmp2 == 0) { state = "nicht kalibriert"; }
if (tmp2 == 1) { state = "verschlossen"; }
if (tmp2 == 2) { state = "geoeffnet"; }
if (tmp2 == 3) { state = "sperren und gehen"; }
if (tmp2 == 4) { state = "ausgeklinkt"; }
if (tmp2 == 5) { state = "verriegeln"; }
if (tmp2 == 6) { state = "entriegeln"; }
if (tmp2 == 7) { state = "entriegelt"; }
if (tmp2 == 254) { state = "Motor blockiert"; }
if (tmp2 == 255) { state = "undefiniert"; }
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTSTAT).State(state);
if (tmp2 == 1) { string nachricht = "Nuki abgesperrt"; dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k -d token=++++++EIGENERTOKEN+++++ -d user=+++++EIGENERUSERKEY++++++ -d message='"#nachricht#"', -d priority=1 http://api.pushover.net/1/messages.json"); }
} else {
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTSTAT).State("ABFRAGE NICHT ERFOLGREICH");
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTBAT).State("ABFRAGE NICHT ERFOLGREICH");
}
Dieses Script ERSETZT dann deine alte Version.
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
-
- Beiträge: 176
- Registriert: 29.03.2011, 10:35
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 13 Mal
Re: Bluetooth smartlock per HM steuern
Hat schon jemand die Callback Funktion vom Nuki ausprobiert? Damit sollte es doch möglich sein bei Statusänderungen des Nuki direkt eine Nachricht an eine URL (CCU) zu schicken. Ich verstehe nur nicht so ganz, wie die Daten von der CCU in eine SV geschrieben werden können.
-ueffchen
-ueffchen