Doorpi mit ioBroker, Telegram und Text2Command. Bitte Hilfe beim Einrichten

  • Hilfe / Ratschläge

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

Da in jedem Forum ein paar Regeln eingehalten werden müssen, möchte ich diese auch vorher hier festlegen und niederschreiben. Die grundsätzliche Netiquette setze ich bei Jedem voraus. Darüber hinaus möchte ich nur spezielle Regeln ansprechen:
- Unterlasse FullQuote sondern nutze Alternativen wie Inline-Quoting
-> siehe auch https://de.wikipedia.org/wiki/Fullquote vs. https://de.wikipedia.org/wiki/TOFU#Alternativen_zu_TOFU
- Unterlasse nichtssagende Antworten wie "Danke" oder "werde ich mal testen" oder ähnliches, sofern Du nicht der Threadersteller bist und einen Lösungsvorschlag angeboten bekommen hast.
- Vermeide Doppel-Posts (zwei Beiträge von Dir hintereinander) sondern editiere wenn möglich Deine Posts.

Danke...

  • Doorpi mit ioBroker, Telegram und Text2Command. Bitte Hilfe beim Einrichten

    Servus,

    ich habe auf dem Pi3 alles, siehe oben, installiert.

    Ich kann auch mittels ioBroker Telegram-Nachrichten empfangen und senden.
    Wie schaffe ich es jetzt ein Event auszulösen?

    Wenn der Text "Mach de Tür auf!" empfangen wird, soll DoorPi den Türöffner betätigen.

    Trigger = Mach de Tür auf! Parameter = ? Wert zum Schreiben = ?

    Sehe ich den Wald vor lauter Bäume nicht?
    Gruß Alex

    Pi 3
    Jessie light
    IoBroker
    NoIR V2.0
    Piface
    BIGtec USB Soundkarte
    FritBox 6490 KD-Vodafone
  • Hey, biste weiter gekommen?
    Arbeite mich grad in das Thema iobroker rein......

    AlexA. wrote:

    Servus,

    ich habe auf dem Pi3 alles, siehe oben, installiert.

    Ich kann auch mittels ioBroker Telegram-Nachrichten empfangen und senden.
    Wie schaffe ich es jetzt ein Event auszulösen?

    Wenn der Text "Mach de Tür auf!" empfangen wird, soll DoorPi den Türöffner betätigen.

    Trigger = Mach de Tür auf! Parameter = ? Wert zum Schreiben = ?

    Sehe ich den Wald vor lauter Bäume nicht?
  • Source Code

    1. createState('DoorPi.States.Ring',false);
    2. createState('DoorPi.Snapshots',0);
    3. var snapshots = 3;
    4. var request = require('request');
    5. var url = "http://192.168.44.4/dashboard/snapshot";
    6. for ( i=0; i<snapshots; i++ ) {
    7. createState('DoorPi.Snapshot'+ (i+1),"");
    8. }
    9. //Türklingel
    10. on({id:"javascript.0.DoorPi.States.Ring",val: true}, function (obj) {
    11. if (obj.newState.val === true) {
    12. log("Es klingelt an der Haustür");
    13. // Nach 3 Sekunden den Zustand wieder zurücksetzen
    14. request(url, function (error, response, body) {
    15. if (!error && response.statusCode == 200) {
    16. var dataArr = body.match(/g">(.*?)</g);
    17. var resultArr = [];
    18. var i;
    19. for ( i=0; i<snapshots; i++ ) {
    20. setState('DoorPi.Snapshot'+ (i+1),"");
    21. }
    22. dataArr.sort();
    23. dataArr.reverse();
    24. for ( i=0; i<dataArr.length; i++ ) {
    25. resultArr.push(dataArr[i].replace('g">',"").replace('<',""));
    26. log("Name der Datei " + (i+1) + ": "+ resultArr[i]);
    27. if (i<snapshots) {
    28. setState('DoorPi.Snapshot'+ (i+1),"http://192.168.44.4/dashboard/snapshot/" + resultArr[i]);
    29. } else {
    30. log("Es sind mehr Snapshots auf DoorPi vorhanden, var snapshots erhöhen ?");
    31. }
    32. }
    33. log("Anzahl der Dateien: " + dataArr.length);
    34. setState('DoorPi.Snapshots', dataArr.length);
    35. } else {
    36. log(error);
    37. log('DoorPi nicht erreichbar');
    38. }
    39. }); // end of request
    40. setStateDelayed("javascript.0.DoorPi.States.Ring",false,3000);
    41. }
    42. });
    Display All
    Hier ein Javascript für ioBroker, um eine Klingelbetätigung und neue Snapshots zu empfangen.

    Source Code

    1. [EVENT_OnKeyPressed_prodsystem.0]
    2. 10 = take_snapshot:http://localhost:9000/?action=snapshot
    3. 20 = mailto:xxx@xxx,Mailversand mit Bild,Das ist das Bild als Mailtext,true
    4. 30 = url_call:http://192.168.44.4:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    Zeile 30 sendet das klingeln an ioBroker.
    Gruß
    Wal

    Kaum macht man es richtig, funktioniert es auch !
  • Wal wrote:

    Source Code

    1. createState('DoorPi.States.Ring',false);
    2. createState('DoorPi.Snapshots',0);
    3. var snapshots = 3;
    4. var request = require('request');
    5. var url = "http://192.168.44.4/dashboard/snapshot";
    6. for ( i=0; i<snapshots; i++ ) {
    7. createState('DoorPi.Snapshot'+ (i+1),"");
    8. }
    9. //Türklingel
    10. on({id:"javascript.0.DoorPi.States.Ring",val: true}, function (obj) {
    11. if (obj.newState.val === true) {
    12. log("Es klingelt an der Haustür");
    13. // Nach 3 Sekunden den Zustand wieder zurücksetzen
    14. request(url, function (error, response, body) {
    15. if (!error && response.statusCode == 200) {
    16. var dataArr = body.match(/g">(.*?)</g);
    17. var resultArr = [];
    18. var i;
    19. for ( i=0; i<snapshots; i++ ) {
    20. setState('DoorPi.Snapshot'+ (i+1),"");
    21. }
    22. dataArr.sort();
    23. dataArr.reverse();
    24. for ( i=0; i<dataArr.length; i++ ) {
    25. resultArr.push(dataArr[i].replace('g">',"").replace('<',""));
    26. log("Name der Datei " + (i+1) + ": "+ resultArr[i]);
    27. if (i<snapshots) {
    28. setState('DoorPi.Snapshot'+ (i+1),"http://192.168.44.4/dashboard/snapshot/" + resultArr[i]);
    29. } else {
    30. log("Es sind mehr Snapshots auf DoorPi vorhanden, var snapshots erhöhen ?");
    31. }
    32. }
    33. log("Anzahl der Dateien: " + dataArr.length);
    34. setState('DoorPi.Snapshots', dataArr.length);
    35. } else {
    36. log(error);
    37. log('DoorPi nicht erreichbar');
    38. }
    39. }); // end of request
    40. setStateDelayed("javascript.0.DoorPi.States.Ring",false,3000);
    41. }
    42. });
    Display All
    Hier ein Javascript für ioBroker, um eine Klingelbetätigung und neue Snapshots zu empfangen.

    Source Code

    1. [EVENT_OnKeyPressed_prodsystem.0]
    2. 10 = take_snapshot:http://localhost:9000/?action=snapshot
    3. 20 = mailto:xxx@xxx,Mailversand mit Bild,Das ist das Bild als Mailtext,true
    4. 30 = url_call:http://192.168.44.4:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    Zeile 30 sendet das klingeln an ioBroker.
    Hallo WAL.
    ich nehm an die 192.168.44.4 ist dein IOBroker. Wie kriegst du dann die snapshots vom DoorPi?
    Mein DoorPi hat z.B. die XXX.XXX.10.248 der IOBroker hat die .10.121.
    Bei mir werden die Snapshots auf dem DoorPi auch auf einer Ramdisk gespeichert (10 Files Rollierend, damit die Flashkarte nicht belastet wird).
    Ich möchte gern immer den letzten snapshot am IOBroker angezeigt bekommen.

    Gruß Peter
  • "h***://192.168.44.4/dashboard/snapshot" ist mein DoorPi Webinterface.
    "h***://192.168.44.4:8087" ist mein ioBroker.
    läuft bei mir auf dem gleichen Server.
    Wenn du in deinem Browser die URL "http:// XXX.XXX.10.248/dashboard/snapshot" aufrufst, bekommst du alle snapshot's angezeigt.
    Das Script liest nur alle Snapshot's aus und übergibt die url's iobroker, danach kannst du in der vis von iobroker die snapshot's zuweisen.

    Gruß
    Wal

    Kaum macht man es richtig, funktioniert es auch !

    The post was edited 4 times, last by Wal ().

  • Hallo und guten Abend.

    Ich bin heute auf diesen Beitag gestoßen weil ich eine Möglichkeit suche Doorpi mit Iobroker zu verbinden.
    Würde gerne das Klingelsignal in Vis einbinden und evtl. mit Blockly nutzen.

    Dazu habe ich einen Datenpunkt ("State") mit dem Namen "DoorPi" in javascript.0 erstellt und mir mit Blockly ein kleines Test-Script gebastelt.
    Wenn ich den Datenpunkt manuell auf "true" setze, wird das Script auch ausgeführt und der Datenpunkt wird wieder auf "false" gesetzt. Soweit alles super...

    Wal hat das auch soweit schon sehr gut erklärt wenn Doorpi und Iobroker auf einem System laufen.
    Mein Problem ist aber das ich drei Raspberry Pi´s im Netzwerk habe.
    Pi-1 mit Kamera,HDD und DLNA (192.xxx.0.6)
    Pi-2 mit Doorpi,SSD und ownCloud (192.xxx.0.60)
    Pi-3 mit Iobroker (Visualisierung, Javascript, CCU2, usw.) (192.xxx.0.66)
    Alle Pi´s können untereinander ohne Passwort über ssh Befele absetzen (SSH Pre Shared Key).
    Wie müsste jetzt die Zeile in der doorpi-ini aussehen das ich den erstellten Datenpunkt in javascript.0 auf "true" setzen kann?

    Als erster habe ich folgendes probiert:

    Source Code

    1. 30 = url_call:http://192.168.xxx.66:8081/set/javascript.0.States.DoorPi?value=true&event=doorpi&subscribe=1
    hat nicht funktioniert...


    Danch mal mit Benutzer und Passwort von Pi-3

    Source Code

    1. 30 = url_call:http://Benutzer:Passwort@192.xxx.0.66:8081/set/javascript.0.States.DoorPi?value=true&event=doorpi&subscribe=1
    hat auch nicht funktioniert...


    Hat jemand eine Idee wie ich das hinbekommen könnte?

    LG
    Jürgen
  • Installiere einen simple.api Adapter in IOBroker mit dem Port 8087.

    Erzeuge ein Javascript mit diesem Inhalt und starte das 1-mal, es wird in javascript.0 das state erstellt.

    Source Code

    1. createState('DoorPi.States.Ring',false);
    dann kannst du so den state aus doorpi so setzen :

    Source Code

    1. url_call:http://192.xxx.0.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    Gruß
    Wal

    Kaum macht man es richtig, funktioniert es auch !
  • Hallo Wal
    Vielen Dank für deine Antwort und deine Hilfe.
    Habe das mal gerade so gemacht wie du beschrieben hast.
    Klappt leider noch nicht ganz.
    Wenn ich den Klingeltaster drücke wird der Datenpunkt nicht auf true gesetzt.
    Wie gehabt startet mein Script wenn ich manuell auf true setze.

    Wollte noch Screenshots einfügen, bekomme das aber hier nicht hin. (Bild-Link ???) ?(

    doorpi.ini:

    Source Code

    1. [EVENT_OnKeyPressed_onboardpins.0]
    2. 10 = call:**620#610
    3. 20 = url_call:http://192.xxx.0.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    4. 30 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
    5. 40 = sleep:5
    6. 50 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
    Hast du noch eine Idee?


    LG
    Jürgen
  • Guten Morgen.
    Habe jetzt mal noch etwas getestet.
    Wenn ich den Befehl:

    Source Code

    1. http://192.168.xxx.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1

    am Pc oder an der Pi-2(Doorpi) mit dem Browser abschicke, wird der Datenpunkt gesetzt und mein Script wird gestartet.
    Aber wenn ich den Klingeltaster drücke gehen nur die bisherigen Befehle durch. 10, 30, 40, und 50
    Klingelbild .sh ist ein Script das mir im abstand von 5 Sek.per Telegram zwei Bilder und Text sendet.

    Source Code

    1. [EVENT_OnKeyPressed_onboardpins.0]
    2. 10 = call:**620#610
    3. 20 = url_call:http://192.168.0.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    4. 30 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
    5. 40 = sleep:5
    6. 50 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
    Gebe ich nur die besagte Zeile ein,:

    Source Code

    1. [EVENT_OnKeyPressed_onboardpins.0]
    2. 10 = url_call:http://192.168.0.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    passiert garnichts.

    Sehr seltsam... :?:

    The post was edited 2 times, last by Snoopylix ().

  • Hab das Ganze auch bereits seit einigen Monaten realisiert. Sprich, wenn ein Klingelsignal über den DoorPi erkannt wird, geht in vis automatisch ein Dialog-Fenster auf, über das ich auch den elektrischen Türöffner auslösen kann. Was leider noch nicht so rund läuft, ist das Sprechen über die DoorPhone App.

    Mein DoorPi-Projekt habe ich im HomeMatic-Forum vorgestellt.



    Leider kam ich noch nicht dazu, die Einbindung des DoorPi in den ioBroker näher zu beschreiben, auch wenn ich es hier schon vorbereitet hatte. Vielleicht schaffe ich es in zwei Wochen.

    Bis dann,

    Thorsten
  • Snoopylix wrote:

    Guten Morgen.
    Habe jetzt mal noch etwas getestet.
    Wenn ich den Befehl:

    Source Code

    1. http://192.168.xxx.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    Schreib einfach ein weiteres sh script mit
    curl ...


    Source Code

    1. curl http://192.168.0.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    funktioniert das?
    Aufruf dann mit os_execute: ...
  • Hmm, habe das so seit einem Jahr am laufen.
    Schau mal im Log, ob der url_call-Befehl abgearbeitet wird.

    Ich habe hier noch ein SingleAction vorgestellt um mqtt-Nachrichten zu versenden.
    Das kannst du auch mal versuchen.
    Hier und Hier

    "sudo pip install paho-mqtt" nicht vergessen und die mqtt.py kommt in den SingleAction-Ordner.
    Im ioBroker den MQTT-Server installieren.
    Gruß
    Wal

    Kaum macht man es richtig, funktioniert es auch !

    The post was edited 2 times, last by Wal ().

  • CBMOD wrote:

    Snoopylix wrote:

    Guten Morgen.
    Habe jetzt mal noch etwas getestet.
    Wenn ich den Befehl:

    Source Code

    1. http://192.168.xxx.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    Schreib einfach ein weiteres sh script mitcurl ...


    Source Code

    1. curl http://192.168.0.66:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1
    funktioniert das?
    Aufruf dann mit os_execute: ...
    Bingo das wars....
    So hat es funktioniert. Hatte auch schon ein weiteres Scipt im Hinterkopf, aber auf curl bin ich nicht gekommen...

    Danke für deinen Tip CBMOD

    dtp wrote:

    Hab das Ganze auch bereits seit einigen Monaten realisiert. Sprich, wenn ein Klingelsignal über den DoorPi erkannt wird, geht in vis automatisch ein Dialog-Fenster auf, über das ich auch den elektrischen Türöffner auslösen kann. Was leider noch nicht so rund läuft, ist das Sprechen über die DoorPhone App.

    Mein DoorPi-Projekt habe ich im HomeMatic-Forum vorgestellt.



    Leider kam ich noch nicht dazu, die Einbindung des DoorPi in den ioBroker näher zu beschreiben, auch wenn ich es hier schon vorbereitet hatte. Vielleicht schaffe ich es in zwei Wochen.

    Bis dann,

    Thorsten
    Zum Türöffnen nutze ich eine Keymatic die auch schon in DoorPi und iObroker integriert sind.
    Darf ich fragen welches Widget du in Vis benutzt?
    Vor allem welchen Dialog, und wie du den automatisch öffnest?
    Natürlich nur wenn das nicht so viel Aufwand für dich ist- Ansonsten warte ich bis du die Einbindung in ioBroker näher beschreibst...

    Noch allen einen lieben Dank für euere Antworten und Tips...

    LG
    Jürgen
  • Wal wrote:

    Hmm, habe das so seit einem Jahr am laufen.
    Schau mal im Log, ob der url_call-Befehl abgearbeitet wird.

    Ich habe hier noch ein SingleAction vorgestellt um mqtt-Nachrichten zu versenden.
    Das kannst du auch mal versuchen.
    Hier und Hier

    "sudo pip install paho-mqtt" nicht vergessen und die mqtt.py kommt in den SingleAction-Ordner.
    Im ioBroker den MQTT-Server installieren.
    Danke Wal für den Tip.
    Schöne Erweiterung. Werde ich mal testen.... :thumbsup:

    Wenn ich den Klingeltster drücke gibt die Log folgendes aus:


    2018-01-18 18:55:40,707 [WARNING] [root] section AREA_public not found in configfile
    2018-01-18 18:55:40,710 [INFO] [doorpi.status.webserver_lib.request_handler_static_functions] user door has write permissions: /control/trigger_event
    2018-01-18 18:55:42,130 [INFO] [doorpi.status.webserver] DoorPiWeb URL is DoorPi:8080/
    2018-01-18 18:55:44,374 [INFO] [doorpi.status.webserver] DoorPiWeb URL is DoorPi:8080/
    2018-01-18 18:55:46,063 [INFO] [doorpi.status.webserver] DoorPiWeb URL is DoorPi:8080/
    2018-01-18 18:55:48,313 [INFO] [doorpi.status.webserver] DoorPiWeb URL is DoorPi:8080/
    2018-01-18 18:55:49,462 [WARNING] [root] section AREA_public not found in configfile
    2018-01-18 18:55:49,464 [INFO] [doorpi.status.webserver_lib.request_handler_static_functions] user door has write permissions: /favicon.ico

    LG
    Jürgen
  • Das sagt mir nichts.
    Das muß kommen :
    Display Spoiler
    2018-01-18 20:40:55,429 [DEBUG] [doorpi.status.webserver_lib.request_handler_static_functions] public resource: /control/trigger_event
    2018-01-18 20:40:55,432 [DEBUG] [doorpi.status.webserver_lib.request_handler_static_functions] {
    "event_name": [
    "OnKeyPressed_prodsystem.0"
    ],
    "event_source": [
    "doorpi.keyboard.from_piface"
    ]
    }
    2018-01-18 20:40:55,434 [DEBUG] [doorpi.action.handler] [8UQEIU] fire for event OnKeyPressed_prodsystem.0 this actions [<doorpi.action.SingleActions.url_call.UrlCallAction instance at 0x7148dbc0>, <doorpi.action.SingleActions.mqtt.MQTTAction instance at 0x7148db70>, <doorpi.action.SingleActions.url_call.UrlCallAction instance at 0x7148ddc8>]
    2018-01-18 20:40:55,434 [TRACE] [doorpi.action.handler] [8UQEIU] try to fire action UrlCallAction with args () and kwargs {'url': 'http://192.168.**.*:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1'}
    2018-01-18 20:40:55,435 [TRACE] [doorpi.action.base] run UrlCallAction with args () and kwargs {'url': 'http://192.168.**.*:8087/set/javascript.0.DoorPi.States.Ring?value=true&event=doorpi&subscribe=1'}
    Gruß
    Wal

    Kaum macht man es richtig, funktioniert es auch !