Ankündigung

Einklappen
Keine Ankündigung bisher.

Whisper Systems Signal messenger Client einrichten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    was mqtt ist weiß ich, ich habe das in meinem arduino "eingebaut" um mit openhab zu reden.

    ich habe ein webcam in openhab eingebunden, cooler fände ich es, wenn die openhab aufginge mit dem bild (in der geöffneten sitemap) ...

    aber zur not auch in der signal app...

    Kommentar


      #17
      ich selbst wollte nur den Status meiner Waschmaschine als Signalnachricht auf meinem Handy.
      Das funktioniert auch.

      Im GIT gibt's auch ein Beispiel zu einer sehr aufwendigem BASH-Script.
      Wie weit das in Verbindung mit openhab genutzt werden kann , kann ich dir nicht sagen.

      Du kannst auch Bilder bzw. Dateien empfangen.
      So eine empfangen Datei wird dann so abgelegt:

      Code:
      Attachments:
      -  Stored plaintext in: /var/lib/signal-cli/attachments/8757826229328228763
      den Pfad /var/lib/signal-cli/attachments/ kann man sicherlich überwachen, testen ob es ein Bild und mit openhab anzeigen.
      Nur ich habe das noch nicht versucht.

      Das sollte ja keine fix und fertig Lösung für alle sein, sondern nur die Hürde "Installation SIGNAL-CLI" überwinden und dann mit eigene Ideen weiterzuarbeiten.

      Wie gesagt, vielleicht finden sich User, die z.B. eine D-BUS Integration programmieren, oder einen MQTT Schnittstell, oder, oder, oder ...
      --
      Gruß
      Lothar

      Kommentar


        #18
        Habe mit dem Shellscript ein wenig gespielt:

        Code:
        #!/bin/bash
        
        ZEIT=`date +%H":"%M":"%S`
        DATUM=`date +%d"."%m"."%Y`
        
        zeile=${@:2}
        
        printf "Signal vom $DATUM um $ZEIT\nNachricht: $zeile" | /usr/local/bin/signal-cli --dbus-system send $1
        Aufruf dann via Konsole:

        Code:
        ./signal.sh +49... Ein Text mit Leerzeichen und der Ausgabe eines Shell-Befehls. \\n Ich bin angemeldet als `whoami`.

        Sorry, aber was du dir unter MQTT-Schnittstelle vorstellst erschließt sich mir noch nicht so recht.
        MQTT ist ja eigentlich nur der Transport von Informationen per Topic/Value zu einem Broker und indirekt zu den Clients.
        Zuletzt geändert von FlyingEaglE; 06.10.2017, 11:38.

        Kommentar


          #19
          Leider funktioniert dieses Script genauso wenig wie meines.
          das EXEC-Binding macht da irgendwas anders und übergibt die Parameter nicht 100% korrekt
          --
          Gruß
          Lothar

          Kommentar


            #20
            Äh, nee mit OH hab ich das noch nicht getestet, nur auf der konsole.

            Code:
            zeile=${zeile//_/ }
            Bastel das mal in die Zeile unter "zeile=${@:2}".
            du kannst zwar keine Leerzeichen übergeben aber es werden aus den underscores welche gemacht.

            Zum Thema Bild ... noch nicht schön, aber geht ...

            Code:
            wget https://www.google.de/logos/doodles/2017/meret-oppenheims-104th-birthday-4693074243485696.2-l.png -O signal_image_to_send.png && signal-cli --dbus-system send +49... -m signal_image_to_send.png -a /DATEN/openHAB/scripts/signal_image_to_send.png && rm -f signal_image_to_send.png
            noch nicht sooo schön, aber geht, kriege bild mit text

            2017-10-06 13_09_14-Signal.png
            Zuletzt geändert von FlyingEaglE; 06.10.2017, 12:22.

            Kommentar


              #21
              In der Theorie:

              bash script:
              Code:
              #!/bin/bash
              ZEIT=`date +%H":"%M":"%S`
              DATUM=`date +%d"."%m"."%Y`  
              printf "Signal vom $DATUM um $ZEIT\nNachricht: $[COLOR=#FF0000]{[/COLOR]2[COLOR=#FF0000]}[/COLOR]"|/usr/local/bin/signal-cli --dbus-system send $1
              Aufruf in openHAB:
              Code:
              Switch item=Sende_Nachricht_Signal mappings=[ "+49aaZIELaa [COLOR=#FF0000]\"[/COLOR]Eine Signal vom openHAB eingeschaltet[COLOR=#FF0000]\"[/COLOR]"="Nachricht 1", "+49bbZIELbb [COLOR=#FF0000]\"[/COLOR]Eine zweites Signal vom openHAB[COLOR=#FF0000]\"[/COLOR]"="Nachricht 2" ]
              Ich hab allerdings bisher Signal noch nicht in Betrieb, ist also nur eine Vermutung.

              Ich gehe davon aus, dass der übergebene Text an signal-cli nicht in Anführungszeichen stehen muss, falls doch, müssten notfalls noch welche in den übergebenen String im bash-Script mit rein.
              Auf jeden Fall müssen um jeden übergebenen Parameter, die Leerzeichen enthalten kann Anführungszeichen, damit die bash die Parameter auseinander halten kann.
              Wenn eine Variable Leerzeichen enthalten kann, muss sie vermutlich im bash-Script mit geschweiften Klammern eingebettet werden.
              Zuletzt geändert von udo1toni; 06.10.2017, 15:06.

              Kommentar


                #22
                @udo1toni:
                Jetzt sieht die Nachricht so aus:
                Code:
                Switch item=Sende_Nachricht_Signal mappings=[ "+4978519560661 \"Test 1 Signal\""="Nachricht 1", "+491705779229 Test 2 OpenHAB"="Nachricht 2" ]
                Ergebniss: {"Test}

                --
                Gruß
                Lothar

                Kommentar


                  #23
                  Das ist ja totaler Käse.

                  Dann wäre die nächste Frage, ob es eine andere Möglichkeit gibt, den String an signal-cli zu übergeben, als mittels der Pipe.

                  Du könnstest testwesie auch mal echo statt printf versuchen.

                  Kommentar


                    #24
                    signal-cli --dbus-system send +49xxxxxx -m "Signal-CLI funktioniert mit DBus"


                    Das funktioniert auch.
                    Ich habe irgendwie das EXEC-Binding in Verdacht.

                    Code:
                    /usr/local/bin/signal-cli --dbus-system send $1 -m "{$2}"
                    Ändert nichts am Verhalten {"Test}

                    Code:
                    /usr/local/bin/signal-cli --dbus-system send $1 -m {$2}
                    Funktioniert überhaupt nicht.
                    Zuletzt geändert von lo4dro; 06.10.2017, 15:09.
                    --
                    Gruß
                    Lothar

                    Kommentar


                      #25
                      Also nach Lektüre der Man-Page könnte ich mir noch folgendes vorstellen:

                      Code:
                       /usr/local/bin/signal-cli --dbus-system send $1 -m "Signal vom $DATUM um $ZEIT\nNachricht: ${2}"
                      Die geschweiften Klammern gehören nur um den Variablennamen, nicht mit um das $ (hab das grad nochmal nachgeschaut - sorry)

                      Kommentar


                        #26
                        So jetzt habe ich hoffentlich die Lösung:

                        Im Script:
                        Code:
                        printf "Signal vom $DATUM um $ZEIT\nNachricht: ${*:2}" | /usr/local/bin/signal-cli --dbus-system send $1
                        in der Sitemap:
                        Code:
                        Switch item=Sende_Nachricht_Signal mappings=[ "+49xxxxxx Test 1 openHAB "="Nachricht 1", "+49xxxxxxx Test 2 SIGNAL"="Nachricht 2" ]
                        Das Geheimnis ist wohl das ${*:2}
                        Ohne printf werden die \n nicht umgesetzt sondern dargestellt.

                        --
                        Gruß
                        Lothar

                        Kommentar


                          #27
                          Ich glaube das Problem liegt woanders. Am Script weder von mir noch von udo1toni sollte es nicht liegen.
                          Wie ich in #20 schrieb, geht es via rule und OH1.8.3

                          \n ist ein zeilenumbruch, wie soll der denn umgesetzt werden? du verwendest den doch gar nicht.

                          Frage noch am Rande, warum machst du das via Mapping und nicht via Rule?
                          Zuletzt geändert von FlyingEaglE; 06.10.2017, 15:29.

                          Kommentar


                            #28
                            mit ${*:2} funktioniert es.

                            Erklärung was der Unterschied von $@ und $* ist.
                            https://stackoverflow.com/questions/...en-and-in-bash
                            --
                            Gruß
                            Lothar

                            Kommentar


                              #29
                              Falls das einer vor hat, wie ich, dass bestimmte Nachrichten in bestimmte Gruppen gehen (wegen unterschiedlicher Einstellungen der Benachrichtigungstöne) der kann statt der Telefonnumer einfach -g verwenden

                              Code:
                              echo "Wichtige Nachricht" | signal-cli --dbus-system send -g "D...Q=="
                              die Group-ID findet man in /var/lib/signal-cli/data/<tel.nummer> und dort bei groupStore -> groupID - da eben die entsprechende auswählen.

                              Wichtig, natürlich sollte vorher z.B. am Handy eine Gruppe angelegt werden und die <tel.nummer> als gruppenmitglied eingefügt werden.

                              Kommentar


                                #30
                                Wegen der Zeilenumbrüche von echo...

                                echo ist wohl als Standard posix kompatibel. Mit echo -e "Dies ist ein Text mit \n \n Zeilenumbruch" sollte es gehen.

                                Kommentar

                                Lädt...
                                X