FHEM Forum

FHEM - Hausautomations-Systeme => InterTechno => Thema gestartet von: HerrEmo am 16 Juli 2019, 14:28:00

Titel: Intertechno Gateway Rolladensteuerung
Beitrag von: HerrEmo am 16 Juli 2019, 14:28:00
nachdem ich FHEM auf dem Raspi neu installieren musste tauchen noch einige Probleme auf

Ich versuche über HTTp Request das Gateway anzusprechen
im Log steht
2019.07.16 14:18:07 4: WEB_192.168.1.111_56808 POST /fhem?cmd.Roll_WZ=set%20Roll_WZ%20auf&room=wohnzimmer&XHR=1&fwcsrf=csrf_376793636883764&fw_id=50; BUFLEN:0
2019.07.16 14:18:07 5: Cmd: >set Roll_WZ auf<
2019.07.16 14:18:07 4: dummy set Roll_WZ BI
2019.07.16 14:18:07 5: Starting notify loop for Roll_WZ, 1 event(s), first is auf
2019.07.16 14:18:07 5: Triggering Roll_WZ_ntfy
2019.07.16 14:18:07 4: Roll_WZ_ntfy exec {
    my $v=Value("Roll_WZ");
    if ($v eq "auf") {rollo_wz("auf")};
    if ($v eq "ab") {rollo_wz("ab")};
    if ($v eq "stop") {rollo_wz("stop")};

2019.07.16 14:18:07 5: Cmd: >{
    my $v=Value("Roll_WZ")<
2019.07.16 14:18:07 5: Cmd: >if ($v eq "auf") {rollo_wz("auf")}<
2019.07.16 14:18:07 5: AnalyzeCommand: trying IF for if
2019.07.16 14:18:07 5: Cmd: >if ($v eq "ab") {rollo_wz("ab")}<
2019.07.16 14:18:07 5: AnalyzeCommand: trying IF for if
2019.07.16 14:18:07 5: Cmd: >if ($v eq "stop") {rollo_wz("stop")}<
2019.07.16 14:18:07 5: AnalyzeCommand: trying IF for if
2019.07.16 14:18:07 5: Cmd: ><
2019.07.16 14:18:07 3: Roll_WZ_ntfy return value: Unknown command {
, try help.
IF: no left bracket:  {rollo_wz("auf")}
IF: no left bracket:  {rollo_wz("ab")}
IF: no left bracket:  {rollo_wz("stop")}
2019.07.16 14:18:07 5: End notify loop for Roll_WZ
2019.07.16 14:18:07 4: WEB: /fhem?cmd.Roll_WZ=set%20Roll_WZ%20auf&room=wohnzimmer&XHR=1&fwcsrf=csrf_376793636883764&fw_id=50 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/



in FHEM CFG
#Rolladen Wohnzimmer
define Roll_WZ dummy
attr Roll_WZ alias Rollladen Wohnzimmer
attr Roll_WZ eventMap BI:auf B0:ab BS:stop
attr Roll_WZ room wohnzimmer
attr Roll_WZ webCmd auf:ab:stop
define Roll_WZ_ntfy notify Roll_WZ:.* {\
    my $v=Value("Roll_WZ");;\
    if ($v eq "auf") {rollo_wz("auf")};;\
    if ($v eq "ab") {rollo_wz("ab")};;\
    if ($v eq "stop") {rollo_wz("stop")};;\


in der 99_myUtils.pm
####################################################
####################Rollo Wohnzimmer################
####################################################
sub rollo_wz {

my ($state) = "$_[0]";
my $pid = 0;


if ($state eq "auf")
{

system("echo \"TXP:0,0,10,10920,91,42,0,57,18,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,4,8,4,8,8,4,8,4,8,4,8,4,4,8,4,8,8,4,8,4,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,8,4,4,8,4,8,8,4,4,8,8,4,4,8,8,4,4,8,8,120,0\" | nc -u 192.168.1.129 49880 & pid=$! sleep 1
kill $pid 2>/dev/null >/dev/null");
}
else
{
    if ($state eq "stop")
    {
system("echo \"TXP:0,0,10,10920,91,42,0,57,18,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,4,8,4,8,8,4,8,4,8,4,8,4,4,8,4,8,8,4,8,4,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,8,4,4,8,4,8,4,8,8,4,8,4,4,8,4,8,8,4,8,120,0;\" | nc -u 192.168.1.129 49880 & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
    }
    else
    {
system("echo \"TXP:0,0,10,10920,91,42,0,57,18,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,4,8,4,8,8,4,8,4,8,4,8,4,4,8,4,8,8,4,8,4,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,8,4,4,8,4,8,4,8,4,8,8,4,4,8,4,8,4,8,8,120,0;\" | nc -u 192.168.1.129 49880 & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
    }
}
}


in der Shell funktioniert der Echo

root@fhem:/opt/fhem# echo \"TXP:0,0,10,10920,91,42,0,57,18,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,4,8,4,8,8,4,8,4,8,4,8,4,4,8,4,8,8,4,8,4,4,8,8,4,4,8,8,4,8,4,8,4,8,4,8,4,4,8,4,8,8,4,4,8,4,8,4,8,4,8,8,4,4,8,4,8,4,8,8,120,0\" | nc -u 192.168.1.129 49880
HCGW:VC:ITECHNO;MC:HCGW22;FW:11;IP:192.168.1.55;;


Obigen code habe ich aus dem Intertechno Rolladensteuerung Thread geliehen, hat auch lange funktioniert.