NEWS
Rolladensteuerung über Telegram
-
Hey zusammen,
Da ich nicht so der Programmiersprache mächtig bin, brauch ich Eure Hilfe.
Hat jemand schon einmal über Telegram eine Rolladensteuerung umgesetzt?
Wenn ja, wie ?
Für jede Möglichkeit bin ich dankbar.pdulles
-
@dulles
Da hätte ich schon ne Idee, wie man das machen könnte, aber warum ausgerechnet über Telegram und was hast denn überhaupt für Aktoren, die damit gesteuert werden sollen? -
Du kannst einen Text per Telegram senden. Und dieser Text wird in ein Objekt geschrieben.
Und darauf reagierst du per Script. -
@bahnuhr
Eben, so könnte man das machen. Wobei das mega umständlich ist wesentlich einfacher gehen würde. Dazu muss der TE aber erst mal sagen was er hat und warum ausgerechnet mit Telegram -
Na Mal sehen was er sagt.
Aber wenn er es halt so will -
Ich habe meine Rolladen Steuerung auch in Telegram eingebunden.
Das ganze läuft über die Menü Funktion die man mit Telegram realisieren kann.Rolladen Status, Auf und ab habe ich aktuell drin.
Stelle Rollade auf x% kommt noch.Nix mehr mit schreiben einfach Buttons drücken.
-
@kmxak
interessant, erklär mal bitte bisschen wie das in Telegram geht.
Wobei ich das immer noch umständlich finde, weil ich ne Fritz habe und da einfach in den "Heimmodus" wechsle, wenn ich von unterwegs was steuern möchte und dann direkt auf dem zu steuernden Gerät lande, also nicht mal über den Umweg des IOBroker. Das ist dann auch nur Buttons drücken, allerdings sind die schon alle da und ich muss nichts extra anlegen, aber ich in teressier mich immer für andere Lösungen, da man damit bestimmt auch wieder andere Dinge machen kann -
Also zum Telegram Menü schau dir das mal an: https://www.youtube.com/watch?v=oPOxA8sTCxU
Meine Umsetzung basiert auf dem Grundgerüst.
Das RolladenMenü musst halt selber bauen. Weiß ja nicht was du benutzt. Ist auch bei jedem sehr verschieden. Ich bastel da auch noch immer dran. -
@Jan1
sind alles HomeMatic Funk-Rollladenaktor 1-fach ( HM-LC-Bl1PBU-FM ) von eQ-3 -
@dulles
Ah Funk, da liegt der Hund begraben -
@Jan1
ich möchte halt nicht erst eine VPN Verbindung aufbauen und dann entsprechend den Rolladen steuern.
Fritzbox ist bei mir nur noch ein Router. Ansinsten habe ich ein komplettes Unifi System laufen.
Und winer Portweiterleitung kommt schon garnicht in Frage.pdulles
-
@kmxak sagte in Rolladensteuerung über Telegram:
Meine Umsetzung basiert auf dem Grundgerüst.
Ob du so nett bist und deine Umsetzung mal als Export zur Verfügung stellst?
-
@kmxak
Da hast Du eine super Arbeit geleistet.
An einem Export wäre ich auch interessiert.pdulles
-
Oder als normales JS
Anbei mal ein Beispiel:// Telegram: Antworten auf Handy Eingaben function weiter() { //Variablen var vEingabe = getState("telegram.0.communicate.request").val; // Eingabe per telegram auf dem Handy var vText = ""; var vUser = vEingabe.substring(1, vEingabe.indexOf("]")); vEingabe = vEingabe.substring(vEingabe.indexOf("]") + 1, vEingabe.length); log (vUser); log (vEingabe); if (vEingabe == "/?") { vText = "Auswahlliste:" + "\n--------------------------------------------------------" + "\n"; vText = vText + "/Aussenbereich\n" + "/Blitzer\n" + "/Dachfenster\n" + "/Dieter_Standort\n" + "/DWD\n" + "/Garage\n" + "/Heizung\n" + "/Licht\n"; vText = vText + "/Systemvariablen\n" + "/Tanks\n" + "/Video\n" + "/Zusammenfassung"; sendTo('telegram', { user: vUser, text: vText, parse_mode: 'HTML' }); } if (vEingabe == "/Aussenbereich") { vText = "Außenbereich:" + "\n--------------------------------------------------------" + "\n"; vText = vText + "Temp Sensor Garage: " + getState("hm-rpc.0.KEQ0766778.1.TEMPERATURE").val + "°C\n"; vText = vText + "Temp Kombisensor: " + getState("hm-rpc.0.LEQ1221393.1.TEMPERATURE").val + "°C\n"; vText = vText + "Windgeschwindigkeit: " + parseInt(getState("hm-rpc.0.LEQ1221393.1.WIND_SPEED").val*10)/10 + " km/h\n"; vText = vText + "Photovoltaik:\n"; vText = vText + " - Strang 1: " + parseInt(getState("javascript.0.Status.Photovoltaik.Leistung_Strang1").val) + " W\n"; vText = vText + " - Strang 2: " + parseInt(getState("javascript.0.Status.Photovoltaik.Leistung_Strang2").val) + " W\n"; vText = vText + " - Gesamt: " + getState("javascript.0.Status.Photovoltaik.Tagesleistung").val + " kW\n"; vText = vText + "Terrasse Lampe: " + getState("hm-rpc.0.KEQ0926502.2.STATE").val + "\n"; vText = vText.replace(/false/g, 'aus'); vText = vText.replace(/true/g, 'an'); vText = vText + "Terrasse Bewegung: " + getState("hm-rpc.0.LEQ0492702.1.MOTION").val + "\n"; vText = vText.replace(/false/g, 'nein'); vText = vText.replace(/true/g, 'ja'); vText = vText + "Brunnen: " + getState("javascript.0.Status.Sonstige.Brunnen").val + "\n"; vText = vText + "Wassertränke: " + getState("javascript.0.Status.Sonstige.Wassertraenke").val + "\n"; vText = vText + "Lichtsensor-Ost: " + parseInt(getState("hm-rpc.0.OEQ2281298.1.LUX").val) + " Lux\n"; vText = vText + "Lichtsensor-Süd: " + parseInt(getState("hm-rpc.0.NEQ0322032.1.LUX").val) + " Lux\n"; vText = vText + "Barometer Tränke: " + getState("hm-rega.0.36100").val.toFixed(1) + " hPa" + "\n"; vText = vText + "Barometer Wiffi2: " + getState("hm-rega.0.40977").val.toFixed(1) + " hPa" + "\n"; //vText = vText + "Barometer Zisterne: " + getState("hm-rega.0.33892").val.toFixed(1) + " hPa" + "\n"; vText = vText.replace(/false/g, 'aus'); vText = vText.replace(/true/g, 'an'); sendTo('telegram', { user: vUser, text: vText, parse_mode: 'HTML' }); } if (vEingabe == "/Blitzer") { //.. } if (vEingabe == "/Dieter_Standort") { var ort = getState('javascript.0.Status.Maps.Text_von_Tasker').val; var v_Breitengrad = getState('javascript.0.Status.Maps.Breitengrad1').val; var v_Laengengrad = getState('javascript.0.Status.Maps.Längengrad1').val; sendTo('telegram', {longitude: v_Laengengrad, latitude: v_Breitengrad}); sendTo('telegram', "Dieter Standort: " + ort ); } on({id: "telegram.0.communicate.request"}, function() { // Nachricht von telegram log("Auslöser Telegram"); weiter(); });
-
Was zusätzlich zu dem Script ist noch erforderlich?
Wenn ich das Script einfüge, sollte ich in Telegramm dann ein Menü sehen oder wie muss ich mir das vorstellen?
-
Das Script reagiert auf die Veränderung der Var.: telegram.0.communicate.request
(siehe on ganz unten)Und wenn du nun im Handy (telegram) /? sendest dann bekommst du zurück das Menü.
Zeile 14 ff.Und dann kannst du im Handy einfach anklicken:
bei mir:
Aussenbereich, Blitzer, Dachfenster, etc..
(das kannst du ändern wie du möchtest.Und dann im Script dann einfach auf die Veränderungen reagieren.
Also, z.B.
die fügst in Zeile 16 anstatt: /Aussbereich ein /Rollo_WZ_runterDann ändere in 22 das ab auf /Rollo_WZ_runter
und dann script schreiben (also setState) dass dein Rollo runter fährt.mfg
-
Danke.
Das scheint mir das Richtige für meine Frau zur Rolladen Steuerung zu sein.
Mal dran versuchen.
-
Gerade mal mit dem Script versucht.
So wie ich es Verstanden habe sollte ich in Telegramm eine Antwort bekommen wenn ich das sende:
/?
Ich bekomme aber nur das als Antwort zurück:
Ich verstehe "#?" nicht
Jemand eine Idee?
-
Bei mir siehts so aus:
Eingabe im Handy: /?
Dann kommt Menü.
Klick auf /Zusammenfassung
Ergebnis wird dargestellt. -
Irgendwie macht der Text2Command Adapter aus dem "/" eine "#":
So kommt es in Telegramm an:
Das macht Text2Command daraus:
text2command.0 2019-03-06 14:30:35.148 info processText: "#?"
Wer oder was wandelt denn das Zeichen um ?