Forum

Einloggen | Registrieren | RSS  

luemar(R)

14.01.2017,
11:14

@ bastelix

Raspberry pi B+ TP-LINK 3G HSP+ USB Adapter

» Hi Luemar
»
» ich hab heut mal einen Medion mobile (Huawei) USB-Stick an den Banana Pi
» gehängt. Zapp da war das Lichtlein aus :-D Anscheinend zieht der Stick mehr
» Strom als der BPi hergeben will (allerdings hängt beim BPi die 5V-Schine
» nicht direkt an den 5V vom Netzteil, wie beim Raspberry, sondern an nem
» Batteriecontroller) Hab den Stick dann mal an meinen Rechner gesteckt und
» siehe da:
» #> lsusb
» Bus 005 Device 011: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G
» Modem (modem-mode)
»
» » Das Kommando:
» »
» » pi@raspberrypi:~ $ sudo -s
» » root@raspberrypi:/home/pi# /dev/ttyUSB1 9600
» » bash: /dev/ttyUSB1: Permission denied
» » root@raspberrypi:/home/pi#
» Gut, kann aber so nicht funktionieren weil du den Befehl screen nicht
» verwendest. So wie du das aufrufst willst du /dev/ttyUSB1 als Programm
» ausführen und gibst den Parameter 9600 mit. ;-) Aber du willst ja das
» Programm screen ausführen und dem als Parameter /dev/ttyUSB1 und ggf. 9600
» mitgeben.
»
» So müsste es aussehen:
» pi@raspberrypi:~ $ sudo -s
» root@raspberrypi:/home/pi# screen /dev/ttyUSB1
»
» Hab das mal auf meinem Desktop-Rechner probiert. Wenn ich das richtige
» ttyUSB-Device erwische (mein Stick stellt drei ttyUSB-Devices bereit) und
» dann AT<ENTER> eingebe bekomme ich ein OK - der Stick antwortet auf
» AT-Befehle. Das doofe ist nur, dass ich screen mit kill beenden muss und
» danach das Terminal wegwerfen kann ;-) Weiteres hab ich nicht probiert, da
» ich grad keine SIM im Stick habe
»
» » Und richtig bez. Linux bin ich ein Novize, beschäftige mich aber immer
» mehr damit.
» Ich kenn leider kein gutes Linux-Terminal-Tutorial, sonst würde ich dir
» hier den Link reinstellen. Das hier ist vermutlich etwas zu Umfangreich für
» den Anfang: http://openbook.rheinwerk-verlag.de/unix_guru/ Ich selber hab
» das Buch nicht gelesen, aber ein Bekannter war damit damals (ca. 2003) sehr
» zufrieden (gibts auch in gedruckter Form, falls du ungern lange Texte auf
» dem Bildschirm liest) Aber wenn man sich ein bisschen mit Linux beschäftigt
» und eine Suchmaschine benutzt wenn man nicht weiter kommt lernt man das
» relativ schnell.
»
» » Das mit einem externen Dienst/Schnittstelle begreife ich erst jetzt,
» könnte
» » die Lösung sein, da mein Raspberry sowieso permanent läuft und mit dem
» » Internet verbunden ist,
» » z.Z mittels LAN später über WLAN.
» Wäre ein Option, denk aber bitte dran, dass das Internet störanfälliger
» ist. Wenn dein Router abstürzt, die Telefonleitung tot ist oder eine
» anderweitige Störung vorliegt geht auch keine SMS raus. Man kann natürlich
» per Software sicherstellen, dass die SMS doch rausgeht sobald das Internet
» wieder funktioniert - aber wenn der Einbrecher die Telefonleitung
» durchzwickt...
»
» » Umsomehr als ich hier und auch übers IN
» » keinen der genannten bzw. preis-akzeptablen Huawei sticks auftreiben
» » konnte.
» Aldi verkauft auch Huawei-Sticks als Medion Mobile, im kleingedruckten
» steht auch Huawei mit drauf. Falls du nochmal suchen willst, ggf. gibt es
» so einen günstig in der Bucht. Ich glaub der hat damals im Laden so um die
» 20 Euro gekostet.
»
» » Wie geht das genau oder gibt es ein gutes Tutorial?
» Wie das genau geht hängt vom jeweiligen Dienstleister ab. Ich hab eben mal
» nach "sms gateway" gegoogelt und einige Anbieter gefunden die auch
» Privatkunden bedienen. Da war die Schnittstelle eigentlich immer recht
» ähnlich, einfach eine bestimmte URL aufrufen und die SMS geht raus. Die
» Anbieter stellen da auch eine Dokumentation bereit wie man das genau machen
» muss.
» Am besten du suchst dir einen Anbieter aus der dir zusagt und schaust dir
» da mal die Dokumentation an. Ein simples Python-Script würe in etwa so
» aussehen:
»
» import urllib.request
» u =
» urllib.request.urlopen("https://example.com/gateway.php?from=0123456768&to=012345678&sms=Die+ist+eine+test+smsm";)
» print(u.read())
» u.close()
»
» Die URL stimmt natürlich nicht, ist ja nur ein Beispiel. Du kannst auch
» einfach mal das Script testen:
»
» import urllib.request
» u = urllib.request.urlopen("https://google.com/";)
» print(u.read())
» u.close()
»
» Das gibt dir dann den HTML-Code der Google-Startseite auf der Konsole aus
» (unschön zu lesen, aber man sieht dass es klappt ;-) )
»
» Wie eine URL aufgebaut ist weißt du? Falls nicht
» https:// ist das Protkoll, hier verschlüsselt (httpS)
» example.com ist die Domain
» /gateway.php ist die Ressource die du auf dem Server aufrufen möchtest ( /
» ist wie unter Linux das Trennzeichen für Ordnernamen)
» ? alles hinter dem ? sind Parameter in der Form Schlüssel=Wert (key=value),
» Sonderzeichen (Leerzeichen, Umlaute, etc. muss man maskieren)
» from=0123456768 Schlüssel (mit dem Namen from) = Wert (hier 0123456768)
» & Trennzeichen für das nächsten Schlüssel-Wert-Paar
» to=012345678 Wie from, nur hier heißt der Schlüssel "to"
» sms=Die+ist+eine+test+smsm Hier noch eine Besonderheit, das + (und auch
» %20) in einer URL sind maskierte leerzeichen, der Server wandelt den Text
» "hallo+welt" in den Text "hallo welt" um.
»
» Gruß
» Bastelix

Hallo Bastelix
vielen Dank für die ausführliche und umsichtige Beurteilung. In der Tat stellt der WLAN Router in meinem
Überwachungsobjekt gelegentlich ab. Mein Provider garantiert keine 100% up time und keinen remote
Zugriff, also insgesamt unzuverlässig und doch besser über einen stick und sms.
Wenn bei uns nächstens die analoge Telefonie eingestellt wird und ich auf eine digitale komerzionelle
Überwachungsanlage wechseln muss hätte ich ja dieselben Probleme. Also selbst bauen !

Habe natürlich auch screen /dev/ttyUSB0 (und 1 und 2) 9600 eingegeben, aber:
bash: screen: command not found.

Begreiffe nicht warum mein TP-LINK stick mit den Angaben unter dmesg | tail -20 nicht funktioniert,
vielleicht ist das Tutorial von krausens-online.de dafür nicht zutreffend.
Habe diese Angaben eben hereinkopiert, meine Antwort ist aber wie auch schon im Spamfilter stecken geblieben. Versuche sie als Datei mitzuschicken.

Vielleicht gibt's doch einen Weg, versuche mal -als Test - einen externen Dienst, wie oben von Dir skizziert.
Grüsse luemar.


http://www.elektronik-kompendium.de/forum/upload/20170114111430.txt

bastelix(R)

14.01.2017,
21:09

@ luemar

Raspberry pi B+ TP-LINK 3G HSP+ USB Adapter

Hi Luemar

» vielen Dank für die ausführliche und umsichtige Beurteilung. In der Tat
» stellt der WLAN Router in meinem
» Überwachungsobjekt gelegentlich ab. Mein Provider garantiert keine 100% up
» time und keinen remote Zugriff
100% garantiert dir niemand, kann dir auch niemand garantieren.

» , also insgesamt unzuverlässig und doch besser über einen stick und sms.
Sagen wir mal weniger Störanfällig gegenüber Baggern ;-) Auch das Mobilfunknetz kann ausfallen, etwa ein Hardwareausfall beim Anbieter oder einfach ein Einbrecher mit nem Störsender etc... Und ein Stromausfall ohne USV legt die Anlage auch lahm. Also auch da hast keine 100%. (USV basteln stellen wir bitte hinten an, da können dir die E-Technik-Experten im Forum viel besser helfen als ich)

» Wenn bei uns nächstens die analoge Telefonie eingestellt wird und ich auf
» eine digitale komerzionelle
» Überwachungsanlage wechseln muss hätte ich ja dieselben Probleme. Also
» selbst bauen !
Ich bin mir nicht sicher was genau du willst. Willst du eine Alarmanlage basteln oder brauchst du eine Alarmanlage?
Wenn du wirklich eine Alarmanlage brauchst (warum auch immer) musst du eine professionelle Lösung anschaffen weil alles andere nicht zertifiziert ist.
Wenn du eine Alarmanlage basteln möchtest (weil es Spaß macht, weil du gerne eine Alarmanlage hättest aber nicht wirklich brauchst, etc.) dann bist du auf dem richtigen Weg. Der wird recht lange sein aber ich helfe dir gern wenn du mal nicht weißt in welche Richtung du gehen sollst.

» Habe natürlich auch screen /dev/ttyUSB0 (und 1 und 2) 9600 eingegeben,
» aber:
» bash: screen: command not found.
Grundlagen :-D bash kann mit dem Befehl screen nichts anfangen weil es keine bash-funktion ist und kein Programm mit dem Namen screen gefunden wurde. Du musst also screen erst noch installieren. Du verwendest Raspian, richtig? Dann kannst du das Programm so installieren (als root)

#> apt-get update
#> apt-get install screen

apt-get ist das Paketverwaltungstool von debian-basierten Linux-Systemen (debian, ubuntu, raspian, etc.) apt-get update holt sich die aktualisierten Paketlisten vom Server (welche Pakete in welcher Version verfügbar sind) und apt-get install <Name> installiert das Paket mit dem Namen und alle weiteren Pakete die dieses Paket benötigt.

» Begreiffe nicht warum mein TP-LINK stick mit den Angaben unter dmesg | tail
» -20 nicht funktioniert,
Naja bis jetzt wissen wir nicht, ob er funktioniert oder nicht weil wir noch nicht so weit sind ;-) .
Die Log-Einträge wie
[ 24.085874] usb 1-1.5: GSM modem (1-port) converter now attached to ttyUSB0
würde ich doch eher so verstehen, dass dein Linux den Stick schon richtig erkennt und einbindet. Ich denke eher, dass die weitere Konfiguration noch nicht passt.

» Versuche sie als Datei mitzuschicken.
hat geklappt :-)

» Vielleicht gibt's doch einen Weg, versuche mal -als Test - einen externen Dienst, wie oben von Dir skizziert.
Ja, klingt gut. Erst mal was einfacheres probieren, dabei was lernen und ggf. später wieder mit dem alten Thema weitermachen.

luemar(R)

15.01.2017,
17:22

@ bastelix

Raspberry pi B+ TP-LINK 3G HSP+ USB Adapter

» Hi Luemar
»
» » vielen Dank für die ausführliche und umsichtige Beurteilung. In der Tat
» » stellt der WLAN Router in meinem
» » Überwachungsobjekt gelegentlich ab. Mein Provider garantiert keine 100%
» up
» » time und keinen remote Zugriff
» 100% garantiert dir niemand, kann dir auch niemand garantieren.
»
» » , also insgesamt unzuverlässig und doch besser über einen stick und sms.
» Sagen wir mal weniger Störanfällig gegenüber Baggern ;-) Auch das
» Mobilfunknetz kann ausfallen, etwa ein Hardwareausfall beim Anbieter oder
» einfach ein Einbrecher mit nem Störsender etc... Und ein Stromausfall ohne
» USV legt die Anlage auch lahm. Also auch da hast keine 100%. (USV basteln
» stellen wir bitte hinten an, da können dir die E-Technik-Experten im Forum
» viel besser helfen als ich)
»
» » Wenn bei uns nächstens die analoge Telefonie eingestellt wird und ich
» auf
» » eine digitale komerzionelle
» » Überwachungsanlage wechseln muss hätte ich ja dieselben Probleme. Also
» » selbst bauen !
» Ich bin mir nicht sicher was genau du willst. Willst du eine Alarmanlage
» basteln oder brauchst du eine Alarmanlage?
» Wenn du wirklich eine Alarmanlage brauchst (warum auch immer) musst du eine
» professionelle Lösung anschaffen weil alles andere nicht zertifiziert ist.
» Wenn du eine Alarmanlage basteln möchtest (weil es Spaß macht, weil du
» gerne eine Alarmanlage hättest aber nicht wirklich brauchst, etc.) dann
» bist du auf dem richtigen Weg. Der wird recht lange sein aber ich helfe dir
» gern wenn du mal nicht weißt in welche Richtung du gehen sollst.
»
» » Habe natürlich auch screen /dev/ttyUSB0 (und 1 und 2) 9600 eingegeben,
» » aber:
» » bash: screen: command not found.
» Grundlagen :-D bash kann mit dem Befehl screen nichts anfangen weil es
» keine bash-funktion ist und kein Programm mit dem Namen screen gefunden
» wurde. Du musst also screen erst noch installieren. Du verwendest Raspian,
» richtig? Dann kannst du das Programm so installieren (als root)
»
» #> apt-get update
» #> apt-get install screen
»
» apt-get ist das Paketverwaltungstool von debian-basierten Linux-Systemen
» (debian, ubuntu, raspian, etc.) apt-get update holt sich die aktualisierten
» Paketlisten vom Server (welche Pakete in welcher Version verfügbar sind)
» und apt-get install <Name> installiert das Paket mit dem Namen und alle
» weiteren Pakete die dieses Paket benötigt.
»
» » Begreiffe nicht warum mein TP-LINK stick mit den Angaben unter dmesg |
» tail
» » -20 nicht funktioniert,
» Naja bis jetzt wissen wir nicht, ob er funktioniert oder nicht weil wir
» noch nicht so weit sind ;-) .
» Die Log-Einträge wie
» [ 24.085874] usb 1-1.5: GSM modem (1-port) converter now attached to
» ttyUSB0
» würde ich doch eher so verstehen, dass dein Linux den Stick schon richtig
» erkennt und einbindet. Ich denke eher, dass die weitere Konfiguration noch
» nicht passt.
»
» » Versuche sie als Datei mitzuschicken.
» hat geklappt :-)
»
» » Vielleicht gibt's doch einen Weg, versuche mal -als Test - einen externen
» Dienst, wie oben von Dir skizziert.
» Ja, klingt gut. Erst mal was einfacheres probieren, dabei was lernen und
» ggf. später wieder mit dem alten Thema weitermachen.

Hallo Bastelix,
langsam wirds frustrierend:

1. nach import von screen erzeugt <screen /dev/ttyUSB0 9600> jedesmal einen "Absturz".
2. mit gammu (http://www.mattiasnorell.com/send-sms-from-a-raspberry-pi/) meine ich, dass der TP-LINK USB stick als GSM
erkannt wird und funktioniert aber SMS verschicken geht so nicht, es gibt jedes mal einen timeout Fehler:

root@raspberrypi:/home/pi#
root@raspberrypi:/home/pi# echo "test" | sudo gammu sendsms TEXT 0041 meine Handy Nummer
No response in specified timeout. Probably phone not connected.

Dieselbe Fehlermeldung übrigens auch mit <gammu --identify>

3. Habe als nächstes twilio probiert, Registrierung, Account Infos alle da, aber jetzt bekomme ich bei der Installation der twilio library in Python3
bei allen Versuchen (pip install twilio; easy_install twilio ect.) dieselbe Syntax Fehlermeldung.
Habe nun x Webseiten/Tutorials etc. durchgeackert, funktionieren alle nicht.
Sonntägliche Grüsse, luemar.

bastelix(R)

15.01.2017,
20:29

@ luemar

Raspberry pi B+ TP-LINK 3G HSP+ USB Adapter

Hi Luemar,

beim Stick weiß ich ehrlich gesagt im Moment auch nicht weiter.

» 3. Habe als nächstes twilio probiert, Registrierung, Account Infos alle da,
» aber jetzt bekomme ich bei der Installation der twilio library in Python3
» bei allen Versuchen (pip install twilio; easy_install twilio ect.)
» dieselbe Syntax Fehlermeldung.
» Habe nun x Webseiten/Tutorials etc. durchgeackert, funktionieren alle
» nicht.
Welche Fehlermeldung? Hab das grad mal mit pip3 install twilio auf meinem rechner installiert, das hat geklappt...

Ich hab mir mal kurz die Twilio-Dokumentation angeschaut, die haben ja auch eine REST-Schnittstelle, eventuell hilft dir das Python-Script weiter unten. Das hab ich eben schnell zusammengehackt, kann es aber mangels Zugangsdaten nicht wirklich testen. Und ich sags gleich, schön ist der code nicht! Da fehlt mindestens noch die Fehlerbehandlung - aber hey eigentlich kann ich gar kein Python ;-)

###BEGIN SCRIPT

import urllib.parse
import urllib.request
import urllib.response

sender = '' # hier die twilio nummer eintragen
empfaenger = '' # hier die empfänger nummer eintragen
sms = 'Test sms text!' # der text der sms

account_sid = '' # hier die account_sid von twilio eintragen
auth_token = '' # hier den authentication token eintragen
url = "https://api.twilio.com/2010-04-01/Accounts/"+ account_sid + "/Messages"

post_data = {'From': sender, 'To': empfaenger, 'Body': sms}

p = urllib.request.HTTPPasswordMgrWithDefaultRealm()
p.add_password(None, url, account_sid, auth_token);

auth_handler = urllib.request.HTTPBasicAuthHandler(p)

opener = urllib.request.build_opener(auth_handler)

urllib.request.install_opener(opener)

result = opener.open(url)
messages = result.read()
print (messages)

##### END SCRIPT

Schau mal ob sich da mit deinen Zugangsdaten was tut, und falls es nicht klappt bitte die Fehlermeldung posten (aufpassen, dass keine Zugangsdaten drin stehen)

Gruß
Bastelix

luemar(R)

16.01.2017,
15:07

@ bastelix

Raspberry pi B+ TP-LINK 3G HSP+ USB Adapter

» Hi Luemar,
»
» beim Stick weiß ich ehrlich gesagt im Moment auch nicht weiter.
»
» » 3. Habe als nächstes twilio probiert, Registrierung, Account Infos alle
» da,
» » aber jetzt bekomme ich bei der Installation der twilio library in
» Python3
» » bei allen Versuchen (pip install twilio; easy_install twilio ect.)
» » dieselbe Syntax Fehlermeldung.
» » Habe nun x Webseiten/Tutorials etc. durchgeackert, funktionieren alle
» » nicht.
» Welche Fehlermeldung? Hab das grad mal mit pip3 install twilio auf meinem
» rechner installiert, das hat geklappt...
»
» Ich hab mir mal kurz die Twilio-Dokumentation angeschaut, die haben ja auch
» eine REST-Schnittstelle, eventuell hilft dir das Python-Script weiter
» unten. Das hab ich eben schnell zusammengehackt, kann es aber mangels
» Zugangsdaten nicht wirklich testen. Und ich sags gleich, schön ist der code
» nicht! Da fehlt mindestens noch die Fehlerbehandlung - aber hey eigentlich
» kann ich gar kein Python ;-)
»
» ###BEGIN SCRIPT
»
» import urllib.parse
» import urllib.request
» import urllib.response
»
» sender = '' # hier die twilio nummer eintragen
» empfaenger = '' # hier die empfänger nummer eintragen
» sms = 'Test sms text!' # der text der sms
»
» account_sid = '' # hier die account_sid von twilio eintragen
» auth_token = '' # hier den authentication token eintragen
» url = "https://api.twilio.com/2010-04-01/Accounts/"+ account_sid +
» "/Messages"
»
» post_data = {'From': sender, 'To': empfaenger, 'Body': sms}
»
» p = urllib.request.HTTPPasswordMgrWithDefaultRealm()
» p.add_password(None, url, account_sid, auth_token);
»
» auth_handler = urllib.request.HTTPBasicAuthHandler(p)
»
» opener = urllib.request.build_opener(auth_handler)
»
» urllib.request.install_opener(opener)
»
» result = opener.open(url)
» messages = result.read()
» print (messages)
»
» ##### END SCRIPT
»
» Schau mal ob sich da mit deinen Zugangsdaten was tut, und falls es nicht
» klappt bitte die Fehlermeldung posten (aufpassen, dass keine Zugangsdaten
» drin stehen)
»
» Gruß
» Bastelix

Hallo Bastelix,
also ich habe es nun geschafft - dank Deiner Hilfe - aber etwas anders als oben beschrieben:

installieren von twilio mit <pip install twilio> ging in python3 weder auf meinem PC noch im Raspberry
aber als root mit <python3 -m install twilio> gings.

Auf das oben aufgezeichnete python script bin ich auch gestossen es hat aber insofern nicht funktioniert
als ich beim ausführen eine umfangreiche Meldung (im Anhang) bekommen habe aber kein SMS auf mein Handy
M.E war kein Fehler, jedenfalls kein Fehlercode darin enthalten.

Hab dann auf twilio weiter gelesen und mit einem wesentlich einfacheren Code funktionierts:

from twilio.rest import TwilioRestClient
account_sid = 'xxx....'
auth_token = 'xxx....'
client = TwilioRestClient(account_sid, auth_token)
message = client.messages.create(to="meine Mobile Nummer", from_="twilio Nummer", body="Test bzw. Text";)

Nochmals vielen Dank, luemar.




http://www.elektronik-kompendium.de/forum/upload/20170116150754.txt

bastelix(R)

16.01.2017,
22:23

@ luemar

Raspberry pi B+ TP-LINK 3G HSP+ USB Adapter

» Hallo Bastelix,
» also ich habe es nun geschafft - dank Deiner Hilfe - aber etwas anders als
» oben beschrieben:
:ok: und du hast sogar noch gelernt wie man eine python-lib händisch installiert :-)

» Auf das oben aufgezeichnete python script bin ich auch gestossen es hat
» aber insofern nicht funktioniert
» als ich beim ausführen eine umfangreiche Meldung (im Anhang) bekommen habe
» aber kein SMS auf mein Handy
Gut, ich hab das anhand der Doku für Powershell und Bash, des Python-Handbuchs und drei Stack-Overflow-Antworten zusammengestrickt, wie gesagt kann eigentlich kein Python ;-)
Klar ist die Verwendung der offiziellen Lib einfacher, weil die das ganze Low-Level-REST wegkapselt und die Antworten schön in Objekte verpackt- freut mich dass es jetzt noch klappt. Was mich etwas verwundert ist, dass die Antwort auf das Test-Script in XML war (hätte JSON erwartet) und dass die SMS laut XML-Antwort zugestellt worden sein müsste.

Kannst du die angehängte Datei löschen lassen, da sind ein paar Daten reingerutscht die man besser nicht ins Netz stellt, am besten du schreibst Patrick direkt ne Mail mit Link zum Beitrag und fragst ganz lieb ;-)

Freut mich das es klappt!