Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. JS zum senden über "Dockerized Signal Messenger REST API"

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    JS zum senden über "Dockerized Signal Messenger REST API"

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Klausimausi last edited by

      Hallo, ich muß als Neuling mal wieder was aufleben lassen.
      Diesen Code hatte @Codierknecht 2023 zur Verfügung gestellt.

      function sendWithSignal(message, recipients) {
          var sendParams = {
              url: 'http://192.168.178.5:8086/v2/send',
              headers: {'Content-Type': 'application/json'},
              body: '{"message": "' + message + '", "number": "+4915*****", "recipients": [ ' + recipients + ' ]}'
          };
          request.post(sendParams, function(error, response, body) {
              if (error) {
                  log(error);
              } else {
                  log('Nachricht versendet!');
              }
          });
      }
       
      

      Ich wollte diesen aufgrund mangelnder Codierkenntnisse auch nutzen.
      Das funktioniert auch soweit, bis auf das dass Verfahren über request.post nicht mehr up to date ist.
      Ich bin leider zu doof um das auf httpget oder fetch umzustellen.
      Es wäre schön, wenn mir das jemand anpassen könnte ohne noch zusätzliche Pakete installieren zu müssen.
      Vielen Dank
      Klausimausi

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Klausimausi last edited by

        @klausimausi
        Der Teil von Zeile 7 bis 13 sollte dann so aussehen:

            httpPost(url, reqBody, (error) => {
                if (error) {
                    console.error(error)
                } else {
                    console.log('Nachricht versendet!');
                }
            });
        
        
        K 1 Reply Last reply Reply Quote 0
        • K
          Klausimausi @Codierknecht last edited by

          @codierknecht
          WoW! Schnell !
          Da muss ich nochmal nachhaken.
          Die Variable var sendParams brauche ich dann ja so nicht mehr. die URL kann ich da direkt eintragen
          nur wie übergebe ich dann die benötigten Parameter an regBody?

          Danke Klausimausi

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @Klausimausi last edited by wendy2702

            @klausimausi
            So sieht meine Funktion komplett aus. Die kann auch Anhänge (Bilder) mitschicken.
            Nur mit 'ner Nachricht aufgerufen, wird diese an den Standardempfänger (mich) versendet.
            Man kann auch ein Array mitgeben - dann wird an mehrere Empfänger versendet.

            const url = 'http://192.168.179.13:8086/v2/send';
            const fs = require('fs');
            const mobileNumber = ['+49xxxxxx7'];
            
            function toBase64(filePath) {
              const img = fs.readFileSync(filePath);
              return Buffer.from(img).toString('base64');
            }
            
            async function sendSignalMessage(message, recipients = mobileNumber, attachment = '') {
            
                const reqBody = {
                    message,
                    number: '+49xxxxxxx9',
                    recipients: recipients,
                };    
            
                if (attachment != '') {
                    const base64File = await toBase64(attachment);
                    reqBody.base64_attachments = base64File;
                    console.log('Sende Signal-Nachricht mit Anhang');
                }
            
                httpPost(url, reqBody, (error) => {
                    if (error) {
                        console.error(error);
                    } else {
                        console.log('Nachricht versendet!');
                    }
                });
            }
            

            MOD EDIT: Private Handynummer unkenntlich gemacht

            wendy2702 1 Reply Last reply Reply Quote 0
            • wendy2702
              wendy2702 @Codierknecht last edited by

              @codierknecht War mal so frei deine Handynummer unkenntlich zu machen.

              Codierknecht 1 Reply Last reply Reply Quote 1
              • Codierknecht
                Codierknecht Developer Most Active @wendy2702 last edited by

                @wendy2702
                Danke - das waren logischerweise Phantasienummern 😉

                K 2 Replies Last reply Reply Quote 0
                • K
                  Klausimausi @Codierknecht last edited by

                  @codierknecht
                  Danke ! Jetzt wird es klarer. Mal sehen ob ich das so in mein Script kriege.
                  MfG Klausimausi

                  1 Reply Last reply Reply Quote 0
                  • K
                    Klausimausi @Codierknecht last edited by

                    @codierknecht

                    Also für heute gebe ich es auf.
                    Ich habe die attachments erstmal entfernt um die Fehlermeldung zu eleminieren, weil es kein (img) hatte.
                    Dann läuft das script ohne fehler durch und zeigt im LOG auch "Nachricht versendet!" an.
                    Nur am Empfänger kommt nichts an.

                    MfG

                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @Klausimausi last edited by

                      @klausimausi
                      Du hast als number auch Deine Absendernummer eingetragen?

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Klausimausi @Codierknecht last edited by Klausimausi

                        @codierknecht
                        Ja. number ist die Absendenummer und mobileNumber als Zielnummer. Als message übergebe ich einen String mit Funktionsaufruf.

                        httpPost Agrumente habe ich mir mal im log anzeigen lassen:
                        url --> http://192.168.33.33:8085/v2/send
                        reqBody--> {message:'Hallo Test',number:'+49xxxxxxx3',recipients:'+49xxxxxxxx9'}

                        Codierknecht 1 Reply Last reply Reply Quote 0
                        • Codierknecht
                          Codierknecht Developer Most Active @Klausimausi last edited by

                          @klausimausi
                          Die Empfängernummer ist ein Array?

                          recipients:['+49xxxxxxxx9']
                          
                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Klausimausi @Codierknecht last edited by

                            @codierknecht
                            Yes ! Das Script sendet nun die Message. Im Log erhalte ichnun allerdings eine Fehlermeldung:

                            error httpPost(url=http://192.168.33.33:8085/v2/send, error=timeout of 2000ms exceeded)
                            error timeout of 2000ms exceeded)

                            Puh
                            MfG

                            Codierknecht 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @Klausimausi last edited by

                              @klausimausi

                              httpPost(url, reqBody, {timeout: 5000}, (error) => {
                              
                              K 1 Reply Last reply Reply Quote 0
                              • K
                                Klausimausi @Codierknecht last edited by

                                @codierknecht
                                Geschafft. Jetzt geht es! Nochmal ei dickes Lob!
                                MfG

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                824
                                Online

                                31.8k
                                Users

                                80.0k
                                Topics

                                1.3m
                                Posts

                                3
                                14
                                370
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo