sieht mir aus als ob das Http Binding fehlt, ist das installiert?
dan hab ich noch von den Transformationen installiert:
Regex, JONSONPhath, Javascript, Exec und Binary to Jonson.
was da wirklich gebraucht wird?? ka.
hab mal einen Teil von meinem rules Script, aber ob dir das wirklich hilft? bin da immer noch viel am Versuchen!
und sieht viel nach Php aus, da ich meine Schalter mit meinem Php Programm geschaltet habe.
die meisten Schalter laufen bei mir über ein Mediola AIO Gateway. Funk 433 mhz, FS20 mit 886 Mhz, Homematic Thermostate, usw.
deshalb bin ich auf sendHttpGetRequest(... angewiesen, was soweit auch gut funktioniert.
nur bei manchen aufrufen geht auch schon mal was verloren, daher zum Teil Sicherheitsabfragen , ob auch wirklich was angekommen ist.
Code: Alles auswählen
var String ergebnis
var String ergebnis1
var String Position
var String Temp_soll_hex
var Number Temp_soll_dec
var String Temp_ist_hex
var Number Temp_ist_dec
var String State_hex
var Number lang
var Number nIntVal
var Number nFloatValsoll
var Number nIntValx
var Number nFloatValist
var Number soll
var String hexsoll
var String solldec
var String kueinst
var String temp_senden
/* Rule 1 */
// ******* FS20-3 *****
rule "FS20_3"
when Item FS20_3 received command
then
if (receivedCommand==ON)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=FS20&data=xxxxxxxx")
}
else if (receivedCommand==OFF)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=FS20&data=xxxxxxxx")
}
//logInfo("Prognose_PV_Leistung",Prognose_PV_Leistung.toString)
end
/* Rule 2 */
// ******* FS20-4 *****************************************************
rule "FS20_4"
when Item FS20_4 received command
then
if (receivedCommand==ON)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=FS20&data=xxxxxxxxxxxx")
}
else if (receivedCommand==OFF)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=FS20&data=xxxxxxxxxxxx)
}
end
/* Rule 3 */
// ***** REV 1 *********************************************
rule "Rev_1"
when Item Rev_1 received command
then
if (receivedCommand==ON)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=Send2&type=CODE&code=190800810005001903004400e300d9004e0044090100010101000100010101000100010000000000000101000002")
}
else if (receivedCommand==OFF)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=Send2&type=CODE&code=190800810005001903004400e300d600510044090100010101000100010101000100010000000000000000010102")
}
end
/* Rule 4 */
// ******* REV 2 *******************************************
rule "Rev_2"
when Item Rev_2 received command
then
if (receivedCommand==ON)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=Send2&type=CODE&code=xxxxxxxxxxxxx")
}
else if (receivedCommand==OFF)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=Send2&type=CODE&code=xxxxxxxxxxxxx")
}
end
/* Rule 5 */
// ******* REV 3 *********************************************
rule "Rev_3"
when Item Rev_3 received command
then
if (receivedCommand==ON)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=Send2&type=CODE&code=xxxxxxxxxxxxxx")
}
else if (receivedCommand==OFF)
{
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=Send2&type=CODE&code=xxxxxxxxxxxxxx")
}
end
// Rule 6 // ***** Temperatur Küche lesen *****************************
rule "Heizung Kueche"
when Time cron "0 0/5 * * * ?"
then
ergebnis = null
Position = null
ergebnis = sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=GetStates")
if (ergebnis == NULL) {
Dummy.postUpdate("ergebnis "+Position)
} else {
lang = ergebnis.length - 1
Position = ergebnis.substring(0,8)
ergebnis1 = ergebnis.substring(9,lang)
//if ( Position == "{XC_SUC}") {
//Position = ergebnis1.toString.split("2247C401").get(0)
ergebnis = ergebnis1.toString.split("2247C401").get(1)
Temp_soll_hex = ergebnis.substring(15,19)
Temp_soll_dec = Integer::parseInt(Temp_soll_hex, 16)
nFloatValsoll = Temp_soll_dec.floatValue() / 10
Temp_ist_hex = ergebnis.substring(20,24)
Temp_ist_dec = Integer::parseInt(Temp_ist_hex, 16)
nFloatValist = Temp_ist_dec.floatValue() / 10
//Temp_lesen_ku.postUpdate("ist = "+nFloatValist+"°C")
soll_kueche.postUpdate(nFloatValsoll)
ist_kueche.postUpdate(nFloatValist)
//Temp_lesen_ku.postUpdate("Soll Temp = "+nFloatValsoll+"°C Ist Temp = "+nFloatValist+"°C")
Dummy.postUpdate("if "+Position)
//logInfo("ergebnis",ergebnis)
//logInfo("ergebnis_2",ergebnis1)
//} else {
// Dummy.postUpdate("else "+Position)
//}
}
end
/* Rule 7 */
/// ***** Temperatur Kinderzimmer lesen ***** **********************
rule "Heizung Kinderzimmer"
when Time cron "0 0/1 * * * ?"
then
ergebnis = null
Position = null
ergebnis =sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=GetStates")
if (ergebnis == NULL) {
Dummy_2.postUpdate("ergebnis "+Position)
} else {
lang = ergebnis.length - 1
Position = ergebnis.substring(0,8)
ergebnis1 = ergebnis.substring(9,lang)
//if ( Position == "{XC_SUC}") {
//Position = ergebnis1.toString.split("4CDDEB01").get(0)
ergebnis = ergebnis1.toString.split("4CDDEB01").get(1)
//Temp_soll_hex = ergebnis.substring(15,19)
//Temp_soll_dec = Integer::parseInt(Temp_soll_hex, 16)
//nFloatValsoll = Temp_soll_dec.floatValue() / 10
nFloatValsoll = Integer::parseInt(ergebnis.substring(15,19), 16).floatValue() / 10
Temp_ist_hex = ergebnis.substring(20,24)
Temp_ist_dec = Integer::parseInt(Temp_ist_hex, 16)
nFloatValist = Temp_ist_dec.floatValue() / 10
soll_kinderzimmer.postUpdate(nFloatValsoll)
ist_kinderzimmer.postUpdate(nFloatValist)
//Temp_lesen_ki.postUpdate("Soll Temp = "+nFloatValsoll+"°C Ist Temp = "+nFloatValist+"°C")
Dummy_2.postUpdate("if "+Position)
//logInfo("ergebnis",ergebnis)
//logInfo("ergebnis_2",ergebnis1)
}
end
/* Rule 8 */
// ***** Systemstart ****
rule "Systemstart"
when
System started
then
soll = 19
Tempkz.postUpdate(soll)
soll = 21
Tempkueche.postUpdate(soll)
end
/* Rule 9 */
// ***** Kinderzimmer Temperatur einstellen mit Schiebe Regler *****
rule "Temperatur Kinderzimmer einstellen"
when
Item Tempkz changed
then
soll = (Tempkz.state as DecimalType *2).intValue()
//logInfo("text-hex", String::format("As integer %d, as hex %s", soll, Integer::toHexString(soll)))
//Dummy.postUpdate("Status = "+Integer::toHexString(soll))
temp_senden = "http://192.168.178.xxx/command?XC_FNC=SendSC&type=HM&data=4CDDEB0111"+Integer::toHexString(soll)
sendHttpGetRequest (temp_senden)
end
/* Rule 10 */
// ***** Küche Temperatur einstellen min Schiebe Regler ****2247C401*******************
rule "Temperatur Küche einstellen"
when
Item Tempkueche changed
then
soll = (Tempkueche.state as DecimalType *2).intValue()
//logInfo("text-hex", String::format("As integer %d, as hex %s", soll, Integer::toHexString(soll)))
//Dummy.postUpdate("Status = "+Integer::toHexString(soll))
temp_senden = "http://192.168.178.xxx/command?XC_FNC=SendSC&type=HM&data=2247C40111"+Integer::toHexString(soll)
sendHttpGetRequest (temp_senden)
end
//// ****** zum Regler testen *************************
/* Rule 11 */
rule "Teste Regler"
when
Item Test changed
then
soll = (Test.state as DecimalType ).intValue()
//logInfo("text-hex", String::format("As integer %d, as hex %s", soll, Integer::toHexString(soll)))
//Dummy.postUpdate("Status = "+soll)
end
// ******************************************** Intertechno *****************************************************
// *** Steckdose 1 ***********
// nichts programmiert, ist Steckdose an der Spüle, darf nicht schlaten !!
// *** Steckdose 2 Reserve ***********
/* Rule 12 */
rule "IT Steckdose 2"
when
Item IT_ST_2 received command
then
if (receivedCommand==ON){
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=01E")
}
else if (receivedCommand==OFF) {
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=016")
}
end
// *** Steckdose 3 Flur DG ***********
/* Rule 13 */
rule "IT Steckdose 3"
when
Item IT_ST_3 received command
then
if (receivedCommand==ON){
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=02E")
}
else if (receivedCommand==OFF) {
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=026")
}
end
//
// Schalter 1 und 2 in Küche , dürfen nicht!! Schalter 3 = Reserve
// *** Schalter 1 Küche Decke ***********
/* Rule 14 */
rule "IT Schalter 1"
when
Item IT_Sch_1 received command
then
if (receivedCommand==ON){
sendHttpGetRequest("http://192.168.178.xxx/darf nichr")
}
else if (receivedCommand==OFF) {
sendHttpGetRequest("http://192.168.178.xxx/darf nicht")
}
end
//
// *** Schalter 2 Küche Decke ***********
/* Rule 15 */
rule "IT Schalter 2"
when
Item IT_Sch_2 received command
then
if (receivedCommand==ON){
sendHttpGetRequest("http://192.168.178.xxx/darf nichr")
}
else if (receivedCommand==OFF) {
sendHttpGetRequest("http://192.168.178.xxx/darf nicht")
}
end
//
// *** Schalter 3 Reserve ***********
/* Rule 16 */
rule "IT Schalter 3"
when
Item IT_Sch_3 received command
then
if (receivedCommand==ON){
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=E2E")
}
else if (receivedCommand==OFF) {
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=E26")
}
end
// *** Schalter 4 Garage ***********
/* Rule 17 */
rule "IT Schalter 4"
when
Item IT_Sch_4 received command
then
if (receivedCommand==ON){
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=03E")
}
else if (receivedCommand==OFF) {
sendHttpGetRequest("http://192.168.178.xxx/command?XC_FNC=SendSC&type=IT&data=036")
}
end
// ************************************ Server ************************++
/* Rule 18 */
rule "Server"
when
Item Server received command
then
if (receivedCommand==ON){
sendHttpGetRequest("http://192.168.178.22/msh/msh1.php?nn=80&was=red")
}
else if (receivedCommand==OFF) {
sendHttpGetRequest("http://192.168.178.22/msh/Zotac_aus_mit_function.php")
}
end