SMS istället för mail

Moderators: hekj, Telldus

Post Reply
Leffe
Posts: 96
Joined: Fri Mar 17, 2023 9:45 am

SMS istället för mail

Post by Leffe »

Hej alla på det nya året

Jag använder mig av funktionen att skicka mail när valda saker sker i NH i dag.
Är det någon kunnig som har eller vet om det finns något program eller annat som skulle kunna skicka SMS från en ansluten mobil via en kommandofil på motsvarande sätt som mail?

:D :D
fingalo
Posts: 53
Joined: Fri Mar 17, 2023 9:45 am

Re: SMS istället för mail

Post by fingalo »

Hej,
jag använder
https://play.google.com/store/apps/deta ... mate&hl=sv
i en gammal telefon som är ansluten i mitt wifi nät. Det var det enklaste sättet för mig att nå en telefon från RPI'n.

Har en kommando fil som skickar ett http meddelande till telefonen som sen skickar ett sms.

Kommando filen ser ut så här, sms'et skickas till numret 07205xxxx5 och 192.168.1.151:51794 är telefonens ipadress i mitt nät.

Code: Select all

String message="";

if (deviceIsOff("Rörelselarm") && deviceIsOn("Rörelse 1")) {
	deviceOn("Rörelselarm");	
	message = "Rörelselarm";
} else if (deviceIsOff("Fuktlarm") && deviceIsOn("Fuktsensor 1")) {
	deviceOn("Fuktlarm");
	message = "Fuktlarm1";
} else if (deviceIsOff("Fuktlarm") && deviceIsOn("Fuktsensor 2")) {
	deviceOn("Fuktlarm");
	message = "Fuktlarm2";
} else if (deviceIsOff("Post") && deviceIsOn("Brevlåda")) {
	deviceOn("Post");
	message = "Postlarm";
}

if (message != "") {

	import java.io.BufferedReader;
	import java.io.InputStreamReader;
	import java.net.URL;

	try {	
	    URL url = new URL("http://192.168.1.151:51794/send.html?smsto=07205xxxx5&smsbody=" + message +"&smstype=sms");
	    BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
	    String strTemp = "";
	    while (null != (strTemp = br.readLine())) {
	        echo(strTemp);
	    }
	    br.close();
	} catch (Exception ex) {
		deviceOn("SMS Error");
		echo(ex);
	}
Kommandofilen triggas från devicens kommandofil enligt ex:
if (deviceIsOn("Brevlåda")) {
source ("sms.bsh");
}
Fungerar bra förutom att min telefon inte ville logga in automatisk på wifi ibland när det gick ner. Verkar ha löst sig sen jag bytte router.
Devicen SMS error sätts så jag kan se om wifi anslutningen till telefonen var nere när ett larm försökte skickas.
Larmdevicer sätts också, så de måste kvitteras för att nya larm ska kunna skickas.

Jag ville ha någon slags pushlarm till min Pebble och det här var det enklaste jag kunde komma på som var oberoende av internet.
Leffe
Posts: 96
Joined: Fri Mar 17, 2023 9:45 am

Re: SMS istället för mail

Post by Leffe »

TACK ! fingalo

Jätteskoj att du vill hjälpa till , skall bita tag I detta med en gång och återkommer med resultatet :lol: :lol: :lol: :lol:
Leffe
Posts: 96
Joined: Fri Mar 17, 2023 9:45 am

Re: SMS istället för mail

Post by Leffe »

Ja då har jag macklat lite med ovanstående tipps från figalo , och det fungerar ,dock med ett litet "fel "

Vid förändring av statusen på devicen(62) så sänd det två SMS varje gång , inte jättestörande men onödigt , vad har jag missat eller har för fel i scripten :?:
Ja ni som kan detta förstår säkert att jag famlar lite i mörkret med dessa koder , ( men var duktig i Basic för många, många år sedan ) , och det finns nog en del "onödiga" rader kvar i koden som inte tillför något av värde. Men roligt är det! :D :D


Här är min Device kod :

Code: Select all

smslarm = "62";

if (deviceIsOn(smslarm)) {
  echo("ON");
  
source ("sms.bsh");
} else 
if (deviceIsOff(smslarm)) {
   echo("OFF");
  source ("smsoff.bsh");
}
Och min SMS.bsh:

Code: Select all

String message="Larm_till";


       URL url = new URL("http://192.168.1.76:48770/send.html?smsto=07052xxxxxxx&smsbody=" + message +"&smstype=sms");
          BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
       String strTemp = "";
       while (null != (strTemp = br.readLine())) {
           echo(strTemp);
       }
       br.close();
   } catch (Exception ex) {
      deviceOn("SMS Error");
      echo(ex);
   }
{
SMSoff.bsh:

Code: Select all

String message="Larm_från";


       URL url = new URL("http://192.168.1.76:48770/send.html?smsto=0705xxxxxx&smsbody=" + message +"&smstype=sms");
          BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
       String strTemp = "";
       while (null != (strTemp = br.readLine())) {
           echo(strTemp);
       }
       br.close();
   } catch (Exception ex) {
      deviceOn("SMS Error");
      echo(ex);
   }
{
fingalo
Posts: 53
Joined: Fri Mar 17, 2023 9:45 am

Re: SMS istället för mail

Post by fingalo »

Hej,
jag känner igen problemet med två sms. Tyvärr kan jag inte komma ihåg varför det blev så och vad jag gjorde för att fixa det! Lite pinsamt...
Kör du vnc? Då kan det vara så att du har två Nexahome igång. Händer om man har Tightvnc server installerad. Då körs scriptet två gånger.
Jag ser också att jag har satt mina devicer för larm och sms med parameter dummy=yes och i kolumn repeat värdet 0.
Annars är det inget jag kommer på som jag gjort.
Leffe
Posts: 96
Joined: Fri Mar 17, 2023 9:45 am

Re: SMS istället för mail

Post by Leffe »

Kanon !
dummy:yes
Fixade problemet , nu funkar allt helt ok :D
Post Reply