Homematic und Bosmon

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smileys
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Homematic und Bosmon

Homematic und Bosmon

von QBallDuke » 14. Feb 2020, 19:14

Hallo ich bin vor etwa 4 Tagen auf Eure tolle Software gestoßen, konnte allerdings kein weg finden Bosmon in mein Homematic zu integrieren. Dies habe ich nun selbst gelöst und möchte meine Lösung mit euch teilen.

Features:
Bei Alarm wird über Homematic Türgong ein sound abgespielt.
Lichter im Schlafzimmer werden für 1 Minute eingeschaltet.


1.in Bosmon ein webfester erstellen
2.webserver aufsetzen (unabhängig von bosmon)
3.unter telegrammereignisse/aktionen webfenster mit URL zu dieser Alarm.php aufrufen
http://localhost/Alarm.php?user=FFW&pas ... ER&cmd=set

cmd=set
cmd=reset
cmd=status


status gibt 1 oder 0 zurück
set setzt die status.txt die ihr im selben ordner wie die php datei erstellen müsst auf 1
reset setzt diese auf 0


Alarm.php

Code: Alles auswählen

<?php
$user = $_GET['user'];
$pass = $_GET['pass'];
$cmd = $_GET['cmd'];

if($user == "FFW"
&& $pass == "DeinPasswort")
{


		if($cmd=='set'){
			echo 'Alarm Set!!!';
			$fp = fopen('status.txt', 'w');
			fwrite($fp, '1');
			fclose($fp);
		}
		if($cmd=='reset'){
			echo 'Alarm Reset!!!';
			$fp = fopen('status.txt', 'w');
			fwrite($fp, '0');
			fclose($fp);
		}
		if($cmd=='status'){
			$f = fopen('status.txt', 'r');
			$status = fgets($f);
			fclose($f);
			
			echo $status;
		}
}
else
{
    if(isset($_GET))
    {?>

            <form method="GET" action="setAlarm.php">
            User <input type="text" name="user"></input><br/>
            Pass <input type="password" name="pass"></input><br/>
            <input type="submit" name="submit" value="Go"></input>
            </form>
    <?}
}
?>
4. nun in eurer CCU3 eine Systemvariable mit namen FeuerwehrEinsatz erstellen
5. programm in der ccu3 erstellen das alle 2 sekunden ausgeführt wird
dieses führt das folgende script aus

Code: Alles auswählen

! Alarm Auf Webseite Abfragen

var url = "http://localhost/FFW/Alarm.php?user=FFW&pass=DeinPASSWORT&cmd=status";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string response = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

if (response<>"") 
{
    if (response=="1") 
    {
        object o_temp = dom.GetObject("FeuerwehrEinsatz");
        o_temp.State (1);
    }else{
        object o_temp = dom.GetObject("FeuerwehrEinsatz");
        o_temp.State (0);
    }
}

dieses script prüft dann mit dem cmd=status ob 1 oder 0 in der status.txt steht und passt die systemvariable FeuerwehrEinsatz an. Nun haben wir also unseren alarm als systemvariable in unserer CCU3

6. wir erstellen noch ein programm auf der ccu3 das bei änderung der systemvariable FeuerwehrEinsatz auslöst. Bei aktionen schalten wir dann unsere lichter an oder starten den türgong.
am ende dieser aktionen folgt dann noch dieses script.

Code: Alles auswählen

! Alarm Reseten

var url = "http://localhost/FFW/Alarm.php?user=FFW&pass=DeinPASSWORT&cmd=reset";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string response = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();


object o_temp = dom.GetObject("FeuerwehrEinsatz");
o_temp.State (0);
Dieses script setzt die status.txt wieder auf 0 damit der gong nicht endlos weiter klingelt :D


Hoffe das erspart Jemandem Zeit.
MFG Jochen :D

Nach oben