<?php
/*
╔═══╗ ╔═══╗ ╔═══╗ ┌───────────────────────────────────────────────────┐
║ ║ ║ ║ │ SensorAndSwitch (C)2014-17 Bluedragon │
╚═══╗ ╠═══╣ ╚═══╗ ├──────────────────┬────────────────────────────────┤
║ ║ ║ ║ │ SAS-PsG │ psgCZ-LED.php │
╚═══╝ ╝ ╚ ╚═══╝ ├──────────────────┴────────────────────────────────┤
┌─────────────────┤ Computerzimmer Leselampe │
│ Info: ╘═══════════════════════════════════════════════════╡
├─────────────────────────────────────────────────────────────────────┤
│ Edimax Schaltsteckdose │
├─────────────────────────────────────────────────────────────────────┤
│ Diese Variablen müssen gegebenenfalls angepasst werden: │
│ - $user ist der Benutzer │
│ - $password ist das Kennwort │
│ - $ip ist die IP-Adresse mit Portangabe der Edimax │
│ - $mac ist die MAC-Adresse für die Anzeige im Slot │
│ In den Variablen stehen die Default-Werte als Beispiel │
╘═════════════════════════════════════════════════════════════════════╛
*/
include_once __DIR__."/../include/psg.php";
$ver="6.00";
$user="admin"; # Benutzer
$password="12345678"; # Kennwort
$ip="192.168.1.123:10000"; # IP-Adresse der Edimax
$mac="80:FF:22:FA:9C:B5"; # MAC-Adresse für die Anzeige
$echo="V#2.02#V#".$mac."*AIN#V#Edimax*Firma#V#SP-1101W*Produkt#V#SAS PsG V ".$ver."*ID#V#manuell*Mode#";
$poston='<?xml version="1.0" encoding="utf-8"?><SMARTPLUG id="edimax"><CMD id="setup"><Device.System.Power.State>ON</Device.System.Power.State></CMD></SMARTPLUG>';
$postoff='<?xml version="1.0" encoding="utf-8"?><SMARTPLUG id="edimax"><CMD id="setup"><Device.System.Power.State>OFF</Device.System.Power.State></CMD></SMARTPLUG>';
$poststatus='<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="get"><Device.System.Power.State></Device.System.Power.State></CMD></SMARTPLUG>';
$url='http://'.$user.':'.$password.'@'.$ip.'/smartplug.cgi';
$Status="S#2#E##";
if ($_GET["info"]=="status") {
$xml=web($url,$poststatus);
if (strpos($xml,"ON")) {
$Status="S#1#";
}
if (strpos($xml,"OFF")) {
$Status="S#0#";
}
}
if ($_GET["schalter"]=="1") {
$Status=web($url,$poston);
if (strpos("#".$Status,"OK")) {
$Status="S#1#";
}
}
if ($_GET["schalter"]=="0") {
$Status=web($url,$postoff);
if (strpos("#".$Status,"OK")) {
$Status="S#0#";
}
}
echo $Status.$echo;
exit;
?>
<?php
echo "FN#Action-Schalter#";
/*
+---------------------------------------------------------------------+
| |
| SensorAndSwitch Automation Pro |
| PseudoGeräte-Script |
| =============================================================== |
| -> Schalter Homematic Schlter Id 1247 |
+---------------------------------------------------------------------+
Pfad für Statusdatei und Varaiblen in "conf/statuspfad.php" angegeben !
*/
include __DIR__."/../include/psg.php";
include __dir__."/../conf/statuspfad.php";
$gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));
#$url='http://192.168.178.30:81/ws65.exe?go=dom.GetObject("1247:1.STATE").State()'; # für Homematic
$url='http://192.168.64.135/cm?cmnd=Status 11'; # für Action
$Status="S##E##";
if ($_GET["info"]=="status") {
$xml=web($url,$post);
if (strpos($xml,"false")) {
$Status="S#1#";
}
if (strpos($xml,"true")) {
$Status="S#0#";
}
}
if ($_GET["schalter"]=="1") {
# $url='http://192.168.178.30:81/ws65.exe?go=dom.GetObject("1247:1.STATE").State(0)'; # für Homematic
$url='http://192.168.64.135/cm?cmnd=Power on';
$Status=web($url,$post);
$Status="S#1#";
}
if ($_GET["schalter"]=="0") {
# $url='http://192.168.178.30:81/ws65.exe?go=dom.GetObject("1247:1.STATE").State(1)'; # für Homematic
$url='http://192.168.64.135/cm?cmnd=Power off'; # für Action
$Status=web($url,$post);
$Status="S#0#";
}
echo "P#".' Licht Keller, '."*HTML#";
echo $Status;
exit;
if ($_GET["info"]=="status") {
$xml=web($url,$post);
if (strpos($Status,"ON")) {
$Status="S#1#";
}
if (strpos($Status,"OFF")) {
$Status="S#0#";
}
}
if (strpos($xml,'"Power":1,')) {
STATUS = {"Status":{"Module":6, "FriendlyName":"sonoff_pow_1", "Topic":"sonoff", "ButtonTopic":"0", "Power":0, "PowerOnState":3, "LedState":1, "SaveData":1, "SaveState":1, "ButtonRetain":0, "PowerRetain":0}}
STATUS = {"Status":{"Module":6, "FriendlyName":"sonoff_pow_1", "Topic":"sonoff", "ButtonTopic":"0", "Power":1, "PowerOnState":3, "LedState":1, "SaveData":1, "SaveState":1, "ButtonRetain":0, "PowerRetain":0}}
<?php
/*
+---------------------------------------------------------------------+
| |
| SensorAndSwitch Automation Pro |
| PseudoGeräte-Script |
| =============================================================== |
| -> Schalter Homematic Schlter Id 1247 |
+---------------------------------------------------------------------+
Pfad für Statusdatei und Varaiblen in "conf/statuspfad.php" angegeben !
*/
include __DIR__."/../include/psg.php";
include __dir__."/../conf/statuspfad.php";
$gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));
$ver="V#192.168.64.135#";
$Status="S##E##";
$power="0";
# Ausgabe der Leistungsseite
$url='http://192.168.64.135/cm?cmnd=Status%208';
$xml=web($url,$post);
#aktuelle Leistung im String suchen
$pos1 = strpos($xml,"\"Power\"")+8;
$pos2 = strpos($xml,", \"Factor\"");
$power=substr($xml, $pos1, $pos2-$pos1);
# Ausgabe für den Namen und den Status
$url='http://192.168.64.135/cm?cmnd=Status11'; # für power on/off und Namen
$xml=web($url,$post);
#den Namen des Geräts im String suchen
$pos3 = strpos($xml,"FriendlyName")+15;
$pos4 = strpos($xml,", \"Topic");
$name=substr($xml, $pos3, $pos4-$pos3-1);
if ($_GET["info"]=="status") {
$x=(strpos($xml,"\"Power\":1"));
if (strpos($xml,"\"Power\":1")) {
$Status="S#1#";
}
else {
$Status="S#0#";
}
}
if ($_GET["schalter"]=="1") {
$url='http://192.168.64.135/cm?cmnd=Power%20on';
$Status=web($url,$post);
$Status="S#1#";
}
if ($_GET["schalter"]=="0") {
$url='http://192.168.64.135/cm?cmnd=Power%20off'; # für Action
$Status=web($url,$post);
$Status="S#0#";
}
echo "FN#".$name."#".$ver;
echo "W#".floatval($power)."*xxx#";
echo $Status;
exit;
?>
<?php
/*
+---------------------------------------------------------------------+
| |
| SensorAndSwitch Automation Pro |
| PseudoGeräte-Script |
| =============================================================== |
| -> Schalter sonoff pow mit tosmato firmware |
+---------------------------------------------------------------------+
*/
include __DIR__."/../include/psg.php";
$ip="192.168.64.135";
$gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));
$Status="S##E##";
# Ausgabe der Leistungsseite
$url='http://'.$ip.'/cm?cmnd=Status%208';
$xml=web($url,$post);
#aktuelle Leistung im String suchen
$pos1 = strpos($xml,"\"Power\"")+8;
$pos2 = strpos($xml,", \"Factor\"");
$power=substr($xml, $pos1, $pos2-$pos1);
# Ausgabe Name und Status
$url='http://'.$ip.'/cm?cmnd=Status11'; # on/off und Namen
$xml=web($url,$post);
#den Namen im String suchen
$pos3 = strpos($xml,"FriendlyName")+15;
$pos4 = strpos($xml,", \"Topic");
$name=substr($xml, $pos3, $pos4-$pos3-1);
if ($_GET["info"]=="status") {
$x=(strpos($xml,"\"Power\":1"));
if (strpos($xml,"\"Power\":1")) {
$Status="S#1#";
}
else {
$Status="S#0#";
}
}
if ($_GET["schalter"]=="1") {
$url='http://'.$ip.'/cm?cmnd=Power%20on';
$Status=web($url,$post);
$Status="S#1#";
}
if ($_GET["schalter"]=="0") {
$url='http://'.$ip.'/cm?cmnd=Power%20off';[ATTACH=full]91867[/ATTACH]
$Status=web($url,$post);
$Status="S#0#";
}
echo "FN#".$name."#V#".$ip."*AIN#";
echo "W#".floatval($power)."*xxx#";
echo $Status;
exit;
?>
#!/usr/bin/python
import sys
import requests
import json
searchswitch=sys.argv[1] #bijv. 'Lite'
searchdevice=sys.argv[2] #bijv. 'Controller'
doaction=sys.argv[3] #'On', 'Off'
#searchswitch="Lite" # Bezeichnung von meinem Schalter
#searchdevice="Controller"
#doaction="GetState"
#doaction="Off"
#doaction="On"
print (searchswitch +", "+ searchdevice +", "+ doaction)
r = requests.get("https://cloud.homewizard.com/account/login", auth=('[email protected]','xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'))
# Anmeldedaten erhält man nach dem man sich mit der Lite App registriert hat.
# Passwort muss Sha1 verschlüsselt sein
# Passwort Converter hier https://hash.online-convert.com/sha1-generator gefunden !
# https://gist.github.com/Flavien06/dacdd6bfae400c167798b2ae36ee8cf8
#print (r.status_code)
#print (r.json())
j = r.json()
#j = json.loads(r.text)
sessionid = j['session']
#sessionid = "1"
#print (sessionid)
r = requests.get("https://plug.homewizard.com/plugs", headers={'X-Session-Token': sessionid})
#print (r.text)
#print (r.json())
deviceid=''
j1=json.loads(r.text)
#print (j1)
for i in j1:
if i['name']==searchswitch:
plugid=i['id']
d=i['devices']
for i1 in d:
if i1['name']==searchdevice:
deviceid=i1['id']
#print (plugid)
#print (deviceid)
if deviceid=='':
print ("Error: device not found!")
url = 'https://plug.homewizard.com/plugs/'+plugid+'/devices/'+deviceid+'/action'
#print (url)
headers = {'X-Session-Token': sessionid,
'Content-Type': 'application/json; charset=utf-8'
}
payload = {"action": doaction}
r = requests.post(url, data=json.dumps(payload), headers=headers)
print (r.text)