Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. SmS oder Anruf

    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

    UNSOLVED SmS oder Anruf

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dutchman
      Dutchman Developer Most Active Administrators @padrino last edited by

      @padrino sagte in SmS oder Anruf:

      Wie kompliziert/komplex wäre es denn, einen einfach Adapter anzubieten, der eine Serielle Schnittstelle öffnet und dem man dann einfach den AT String per Datenpunkt/Objekt übergeben würde?

      so schwer ist das eigentlich nicht, kannste auch erstmal als script testen.
      Mit serial port kan man actief nach ner Schnittstellen lauschen und daten schicken, dan muss man nur nich rausfinden wie die daten hingeschickt werden müssen (meistens hexadezimal codiert)

      https://www.npmjs.com/package/serialport

      (ich benutze das z.b. fur opentherm adapter)

      1 Reply Last reply Reply Quote 0
      • U
        ulistermclane @padrino last edited by ulistermclane

        @padrino Das ist nicht kompliziert; dafür gibt es auch ein npm Modul namens serialport-gsm hier Hab ich in Verwendung um damit zu steuern und Alarme übermittelt zu bekommen. Dazu nutze ich eines er bekannten China-Telefonmodule (SIM800)

        apollon77 padrino 2 Replies Last reply Reply Quote 0
        • G
          g.pitzer last edited by

          Hallo delfser,

          Ich habe das mit dem Hilink Adapter und einem HUAWEI E3372 LTE Surfstick gelöst.
          Funktioniert wunderbar und sehr schnell.
          Zusätzlich kann ich dir noch die Android App FireAlert2 empfehlen. Damit signalisiert das Handy bei SMS Eingang auf bestimmte Nummern oder Alarmmeldungen auch wenn das Handy lautlos geschalten ist.
          Habe ich für die Brandmelder von Xiaomi in Betrieb.

          lg

          1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 @ulistermclane last edited by

            @ulistermclane Cool,die kannte ich noch gar nicht, Gibts irgendwo eine Übersciht welche GSMs (auch USB Sticks und so?) es unterstützt?

            1 Reply Last reply Reply Quote 0
            • padrino
              padrino Most Active @ulistermclane last edited by

              @ulistermclane sagte in SmS oder Anruf:

              @padrino Das ist nicht kompliziert; dafür gibt es auch ein npm Modul namens serialport-gsm hier Hab ich in Verwendung um damit zu steuern und Alarme übermittelt zu bekommen. Dazu nutze ich eines er bekannten China-Telefonmodule (SIM800)

              Nicht kompliziert? Das kommt auf die Ahnung an, die man hat. 😉

              Bei mir scheitert es schon an der Installation. 😞

              Hab es versucht mit

              npm install serialport-gsm

              gab ein paar Warnungen, aber dann war wohl was installiert...

              Also mal das Beispiel im JS adapter eingeben, und das ist schon gescheitert.

              Ausgabe:
              Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/serialport-gsm'

              Also mal geschaut, dort liegt bei mir auch nix, denn jenes "node_modules" hat nur zwei (andere) Unterverzeichnisse.

              Weiter gesucht, gefunden, dass es wohl da ist:
              /home/pi/node_modules/serialport-gsm

              Und damit ist mein Wissen bzgl "X" auch schon ausgereizt... 😕

              CU,
              padrino

              Dutchman 1 Reply Last reply Reply Quote 0
              • Dutchman
                Dutchman Developer Most Active Administrators @padrino last edited by

                @padrino sagte in SmS oder Anruf:

                npm install serialport-gsm
                gab ein paar Warnungen, aber dann war wohl was installiert...

                bitte log ausgabe 😉

                @padrino sagte in SmS oder Anruf:

                Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/serialport-gsm'

                er kann das Modul nicht finden

                ich denke mal du hast den Installationsbefehl im falschen Verzeichnis ausgeführt, trage das Modul doch bitte einfach mal im JS Adapter ein das braucht man nicht auf der Console zu machen.
                Im log solltest du dann sehen das er es installiert.

                1 Reply Last reply Reply Quote 0
                • padrino
                  padrino Most Active last edited by padrino

                  Also, ich hab gesehen, dass ich wohl auch noch node-pdu brauche.

                  Nachdem das sich beim install wegen root beschwert hat, habe ich es noch mit sudo probiert...

                  Habe leider keinen Plan, wo ich ein log herbekommen. :((

                  Denke, alles wurde installiert, bis auf ein paar "optional dependency warnings"...

                  Gebe ich als script ein

                  let serialportgsm = require('serialport-gsm')
                  
                  serialportgsm.list((err, result) => {
                      console.log(result)
                  })
                  

                  kommt nur

                  Log
                  22:20:53.094	[info]	javascript.0 Stop script script.js.common.js_test
                  22:20:53.135	[info]	javascript.0 Start javascript script.js.common.js_test
                  22:20:53.137	[info]	javascript.0 script.js.common.js_test: registered 0 subscriptions and 0 schedules
                  22:20:53.291	[info]	javascript.0 script.js.common.js_test: [object Object],[object Object],[object Object]
                  
                  Dutchman 1 Reply Last reply Reply Quote 0
                  • Dutchman
                    Dutchman Developer Most Active Administrators @padrino last edited by Dutchman

                    @padrino sagte in SmS oder Anruf:

                    Gebe ich als script ein
                    let serialportgsm = require('serialport-gsm') serialportgsm.list((err, result) => { console.log(result) })

                    mach mal

                    console.log(JSON.stringify(result))
                    
                    1 Reply Last reply Reply Quote 0
                    • padrino
                      padrino Most Active last edited by

                      2019-02-20 23:05:23.487 - error: javascript.0 script.js.common.js_test: script.js.common.js_test:1
                      2019-02-20 23:05:23.487 - error: javascript.0 console.log(JSON.stringify(result))
                      2019-02-20 23:05:23.488 - error: javascript.0 ^
                      2019-02-20 23:05:23.488 - error: javascript.0 ReferenceError: result is not defined
                      2019-02-20 23:05:23.488 - error: javascript.0 at script.js.common.js_test:1:28
                      2019-02-20 23:05:23.489 - error: javascript.0 at ContextifyScript.Script.runInContext (vm.js:59:29)
                      
                      Dutchman 1 Reply Last reply Reply Quote 0
                      • Dutchman
                        Dutchman Developer Most Active Administrators @padrino last edited by

                        @padrino

                        hast du

                        console.log(JSON.stringify(result))
                        

                        oder

                        let serialportgsm = require('serialport-gsm')
                         
                        serialportgsm.list((err, result) => {
                            console.log(JSON.stringify(result))
                        })
                        

                        gemacht ? 😉

                        padrino 1 Reply Last reply Reply Quote -1
                        • padrino
                          padrino Most Active @Dutchman last edited by padrino

                          Sorry, aber ich hab Null Ahnung von JS - kann nur Blockly 😞

                          @Dutchman sagte in SmS oder Anruf:

                          @padrino

                          hast du

                          let serialportgsm = require('serialport-gsm')
                           
                          serialportgsm.list((err, result) => {
                              console.log(JSON.stringify(result))
                          })
                          

                          gemacht ? 😉

                          03:08:43.402
                          [info]
                          javascript.0 script.js.common.Skript3: [{"comName":"/dev/ttyAMA0"},{"manufacturer":"Nokia","pnpId":"usb-Nokia_Nokia_6230i-if01","vendorId":"0421","productId":"0428","comName":"/dev/ttyACM0"},{"manufacturer":"1a86","pnpId":"usb-1a86_USB2.0-Serial-if00-port0","vendorId":"1a86","productId":"7523","comName":"/dev/ttyUSB0"}]
                          
                          1 Reply Last reply Reply Quote 0
                          • Dutchman
                            Dutchman Developer Most Active Administrators last edited by

                            sieht sehr gut als, also die comunication steht !

                            jetzt muss man weitermachen met den code Senden/empfangen ich wurde gerne helfen (die NPM binare ist eigentlich sehr gut dokumentiert).
                            Ohne hardware aber schwer so 😕

                            da du jetzt Port usw hast kan man die Initialisierung starten und anfangen zu kommunizieren laut docs auf NPM :

                            https://www.npmjs.com/package/serialport-gsm

                            Hmm, also entweder hardware oder mit teamvieler zusammen setzen waehre hier das meist effiziente.

                            padrino 1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 last edited by

                              Das klingt nach perfekter Basis für einen Adapter ... Falls einer da starten will: Unterstütze gern 🙂
                              Warum gabs die Lib noch schon früher 😉

                              1 Reply Last reply Reply Quote 0
                              • Dutchman
                                Dutchman Developer Most Active Administrators last edited by

                                Na also 2 erfahrene die helfen wollen wann geht's los 😉

                                1 Reply Last reply Reply Quote 0
                                • padrino
                                  padrino Most Active @Dutchman last edited by

                                  @Dutchman

                                  Für jemanden, der JavaScript kann, sicher nicht schwer, aber ich weiß ja nicht einmal, an welche Syntax ich mich halten muss, damit es überhaupt gültiger JS Code ist. 😞
                                  Von daher denke ich, das wird leider nix für mich.
                                  Bräuchte quasi ein Gerüst in dem ich nur Werte eintragen brauche, da würde ich evtl. verstehen.

                                  Aber die Code fetzen auf der Webseite erzeugen ja kein funktionierendes Programm.
                                  Und wenn ich die versuche irgend im JS Editor zu pasten mit let oder ohne, oder eine "Rahmen", dann zeigt der mir nur, dass da kein JS code ist, mit "X". 😞

                                  Ich guck mal noch ein paar mal drüber, vielleicht tut sich ja noch was in meinem Oberstübchen...

                                  Dank Dir trotzdem!

                                  CU,
                                  Mario

                                  1 Reply Last reply Reply Quote 0
                                  • Dutchman
                                    Dutchman Developer Most Active Administrators last edited by

                                    tja die Code fetzen sind schon gut, da ist die basis drin nur jetzt muss es nach Variablen und interne logic (also bissle JS und ioBroker Erfahrung)

                                    hmja was ich anbieten kan ist zusammen dran sitzen, da ich das gerät nicht habe ist es sonst code kloppen im dunkeln

                                    1 Reply Last reply Reply Quote 0
                                    • padrino
                                      padrino Most Active last edited by padrino

                                      Also, sollte mal ein Adapter kommen, bin ich gerne bereit durch Testen und Log zu helfen, aber mehr kann ich dazu leider nicht beitragen. 😞
                                      Auch wenn ich eigentlich keinen ganzen Adpter bräucht. 😉

                                      Mein Ziel wäre, mir eine SM zu schicken, dann wäre ich wohl schon happy - zumindest für den Moment. 😄

                                      Schauen wir uns mal den Codefetzen (ich weiß, die ersten beiden Zeilen sind kein Code =))

                                      Get Sim Inbox
                                      
                                      Shows messages of sim inbox
                                      
                                      modem.getSimInbox(callback)
                                      

                                      an. Steht ja nicht viel drin. 😉
                                      Wie verpackt man das?
                                      Aus Deinem

                                      let serialportgsm = require('serialport-gsm')
                                      
                                       
                                      
                                      serialportgsm.list((err, result) => {
                                      
                                          console.log(JSON.stringify(result))
                                      
                                      })
                                      
                                      let serialportgsm = require('serialport-gsm')
                                      
                                      modem.getSimInbox(callback)
                                      
                                      })
                                      

                                      machen geht schonmal nicht.

                                      Daran siehst Du auch, wie wenig ich mit JS auskenne. 😳

                                      Ich denke, wenn mal ein Gerüst steht, dann sollte es in Blockly mit Function (oder so ;)) schon auch mir möglich sein, ein paar aus Variablen gefühlte Parameter zu übergeben. 😉

                                      1 Reply Last reply Reply Quote 0
                                      • Dutchman
                                        Dutchman Developer Most Active Administrators last edited by

                                        @Dutchman sagte in SmS oder Anruf:

                                        https://www.npmjs.com/package/serialport-gsm

                                        in der basis (also hinter // sind Kommentare !)

                                        // Hiermit laden wir die externe library/npm Modul das machen wir nur einmal !
                                        let serialportgsm = require('serialport-gsm')
                                        
                                        // Dieser code sorgt dafür das du eine Übersicht bekommst (wie du bereits hattest) mit dem Port usw. 
                                        serialportgsm.list((err, result) => {
                                            console.log(JSON.stringnifyresult)
                                        })
                                        
                                        // Dan fangen wir jetzt an mit dem Modem zu reden
                                        let modem = serialportgsm.Modem()
                                        let options = {
                                            baudRate: 115200,
                                            dataBits: 8,
                                            parity: 'none',
                                            stopBits: 1,
                                            flowControl: false,
                                            xon: false,
                                            rtscts: false,
                                            xoff: false,
                                            xany: false,
                                            autoDeleteOnReceive: true,
                                            enableConcatenation: true,
                                            incomingCallIndication: true
                                        }
                                         
                                        modem.open('COM', options, callback[Optional])
                                        
                                        // dafür muss es initialisiert werden (Modem.on Heist hier reagieren auf Ereignisse in der variable Modem
                                        modem.on('open', data => {
                                            modem.initializeModem(callback[optional])
                                        
                                        })
                                        
                                        // Jetzt sollte es möglich sein so eine SMS zu schicken mit dem text " Hello there Zab!" !
                                        modem.sendSMS('63999XXXXX19', 'Hello there Zab!', true, callback)
                                        
                                        

                                        bringt dich das fuer den Anfang weiter ?

                                        1 Reply Last reply Reply Quote 0
                                        • padrino
                                          padrino Most Active last edited by

                                          Leider nicht wirklich.

                                          Also, erst mal habe ich den letzten Befehl durch einen "sicheren" ersetzt, zum Testen für mich besser. 😉

                                          modem.getSimInbox(callback)
                                          

                                          Das Ergebnis:

                                          19:08:12.888	[info]	javascript.0 Stop script script.js.common.Skript3
                                          19:08:12.941	[info]	javascript.0 Start javascript script.js.common.Skript3
                                          19:08:12.942	[error]	javascript.0 script.js.common.Skript3: script.js.common.Skript3:51
                                          19:08:12.942	[error]	javascript.0 at script.js.common.Skript3:51:28
                                          19:08:13.126	[info]	javascript.0 script.js.common.Skript3: undefined
                                          

                                          Dann mal Zeile 51 auskommentiert, dann Zeile 70 auskommentiert...
                                          Ergebnis:

                                          19:12:13.273	[info]	javascript.0 Stop script script.js.common.Skript3
                                          19:12:13.320	[info]	javascript.0 Start javascript script.js.common.Skript3
                                          19:12:13.321	[info]	javascript.0 script.js.common.Skript3: registered 0 subscriptions and 0 schedules
                                          19:12:13.447	[info]	javascript.0 script.js.common.Skript3: undefined
                                          

                                          Seltsamerweise spuckt der Teil

                                          let serialportgsm = require('serialport-gsm')
                                          
                                           
                                          
                                          // Dieser code sorgt dafür das du eine Übersicht bekommst (wie du bereits hattest) mit dem Port usw. 
                                          
                                          serialportgsm.list((err, result) => {
                                          
                                              console.log(JSON.stringnifyresult)
                                          
                                          })
                                          

                                          nun gar nix mehr aus. Nehm ich den Code alleine (aus Deinem ersten Hinweis), dann kommt wieder die Ausgabe.

                                          Weitere Vermutungen meinerseits, später da wo 'COM' steht '/dev/ttyAMA0' reinschreiben... aber so weit isses noch nicht. 😃

                                          1 Reply Last reply Reply Quote 0
                                          • padrino
                                            padrino Most Active last edited by padrino

                                            Bin zwar noch nicht weiter, aber immerhin weiß ich jetzt, wieso er mit dem großen Skript, gar nix mehr ausspuckt. 😃

                                            Zeile 6 hat einen Tippfehler: console.log(JSON.stringnifyresult) sollte console.log(JSON.stringnify(result)) sein (mit einer "()" um "result").

                                            Dann mal weiter gucken...

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            549
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            10
                                            54
                                            4414
                                            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