Switch Schalten klappt genau einmal

Begonnen von jksd, 19 März 2016, 16:02:30

Vorheriges Thema - Nächstes Thema

jksd

Bin neu von floorplan auf smartVisu umgestiegen und habe Probleme bei der Anbindung der gads. Ich denke, eigentlich alles richtig gemacht zu haben:

SmartVisu-GUI läuft, nimmt Kontakt zu fronthem auf und ich kann auch GADs in fhem zuordnen. Beim Schalten von "Zaunbeleuchtung" (auch bei den anderen Schaltern) wird genau einmal die "Lampe ein" und dann "Lampe aus" wie erwartet geschaltet und danach nicht mehr. Die Lampe bleibt dann aus. Zudem wird das Icon zum State "1" generell nicht aufgelöst und durch Fragezeichen dargestellt. Sieht dann am GUI so aus, als wenn gleich wieder auf den aktuellen State zurückgeschaltet würde. Den fhem Log-Output (level 5) siehe unten. Man sieht dort, dass einmal von fronthem die "1" Schalthandlung ausgelöst wird und danach nicht mehr.

fhem- und fronthem-Version von heute. smartVisu V2.7 (aktuell).

fhem.cfg:
define fronthem fronthem
attr fronthem room fronthem
attr fronthem verbose 5

define Macbook_Joerg fronthemDevice 192.168.1.110
attr Macbook_Joerg room Fronthem

define Zaunbeleuchtung CUL_HM 28Axxx
attr Zaunbeleuchtung IODev HMLAN1
attr Zaunbeleuchtung IOgrp vccu:HMLAN1
attr Zaunbeleuchtung autoReadReg 4_reqStatus
attr Zaunbeleuchtung devStateIcon Aus:off An:on
attr Zaunbeleuchtung eventMap /off:Aus/on:An/
attr Zaunbeleuchtung expert 2_full
attr Zaunbeleuchtung firmware 2.4
attr Zaunbeleuchtung fp_Licht 70,840,2,Zaunlicht
attr Zaunbeleuchtung group Zaun
attr Zaunbeleuchtung icon light_light_dim_90
attr Zaunbeleuchtung model HM-LC-SW1-PL2
attr Zaunbeleuchtung peerIDs 00000000,
attr Zaunbeleuchtung room Terrasse-Licht,Favourites
attr Zaunbeleuchtung serialNr LEQxxxxxxxx
attr Zaunbeleuchtung subType switch
attr Zaunbeleuchtung webCmd Aus:An


html-Code der smartVisu-Seite (room.OUTSIDE.Garten.html):
{% extends "rooms.html" %}

{% block content %}

<h1><img class="icon" src='{{ icon0 }}scene_garden.png'/>Garten</h1>
<div class="preblock">
</div>

<div class="block">
<div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
<div data-role="collapsible" data-collapsed="false" >

<h3>Licht</h3>
<table width="100%">

<tr>
<td align="left" width="80px">
{{ basic.switch('Zaunlicht', 'Zaunlicht.sw', icon1~'light_outdoor.svg', icon0~'light_outdoor.svg') }}
<td>Zaunlicht</td>
</tr>

<tr>
<td align="left" width="80px">
{{ basic.switch('Bodenstrahler_links_3x', 'Bodenstrahler_links_3x.sw', icon1~'light_uplight.svg', icon0~'light_uplight.svg') }}
<td>Bodenstrahler links 3-fach</td>
</tr>

<tr>
<td align="left" width="80px">
{{ basic.switch('Bodenstrahler_rechts_2x', 'Bodenstrahler_rechts_2x.sw', icon1~'light_uplight.svg', icon0~'light_uplight.svg') }}
<td>Bodenstrahler rechts 2-fach</td>
</tr>

</table>
</div>
</div>
</div>

{% endblock %}


/opt/fhem/www/fronthem/server/fronthem/fhserver.fronthem.cfg:
  "Zaunlicht.sw" : {
         "reading" : "state",
         "type" : "item",
         "converter" : "OnOff",
         "device" : "Zaunbeleuchtung",
         "set" : "state"
      },


Es sind die Haken im GAD-Dialog bei Read und Write gesetzt und gespeichert worden.

/opt/fhem/log/fhem-2016-03.log:

2016.03.19 15:51:02 0: Featurelevel: 5.7
2016.03.19 15:51:02 0: Server started with 428 defined entities (fhem.pl:11066/2016-03-13 perl:5.014002 os:linux user:fhem pid:3686)
2016.03.19 15:51:02 1: HMLAN_Parse: HMLAN1 new condition ok
2016.03.19 15:51:03 5: ipc fronthem:127.0.0.1:54416 (?): receive ws:3687
2016.03.19 15:51:03 5: ipc fronthem:127.0.0.1:54416 (?): receive {"log":{"level":3,"cmd":"log","text":"ws alive with pid 3687"}}
2016.03.19 15:51:03 3: ipc fronthem:127.0.0.1:54416 (ws): ws alive with pid 3687
2016.03.19 15:51:32 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown","message":{"cmd":"connect"}}
2016.03.19 15:51:32 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown","message":{"cmd":"handshake"}}
2016.03.19 15:51:32 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"proto","ver":"0.1"}}
2016.03.19 15:51:32 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"monitor","items":["Zaunlicht.sw","Bodenstrahler_links_3x.sw","Bodenstrahler_rechts_2x.sw","dg.bad-eltern.temperatur.luft","dg.bad-eltern.praesenz","dg.bad-eltern.fenster","dg.schlafen.temperatur.luft","dg.schlafen.rm.alarm","dg.schlafen.rm.stoerung","dg.schlafen.praesenz","dg.schlafen.fenster","eg.essen.temperatur.luft","eg.essen.humidity","eg.kueche.rm.alarm","eg.wohnen.rm.alarm","eg.kueche.rm.stoerung","eg.wohnen.rm.stoerung","eg.koch-wohn.praesenz","eg.kueche.fenster","eg.essen.fenster","eg.wohnen.fenster.sued","eg.wohnen.fenster.west","eg.gaeste-wc.praesenz","eg.gaeste-wc.fenster","eg.diele.temperatur.luft","eg.diele.rm.alarm","eg.diele.rm.stoerung","eg.diele.praesenz","eg.diele.fenster","aussen.temperatur"]}}
2016.03.19 15:52:01 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"1"}}
2016.03.19 15:52:04 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:04 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:04 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:04 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:04 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:04 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:04 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"0"}}
2016.03.19 15:52:04 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:04 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:04 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:04 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:08 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"0"}}
2016.03.19 15:52:08 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:08 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:08 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:08 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:11 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"0"}}
2016.03.19 15:52:11 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:11 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:11 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:11 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:11 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"0"}}
2016.03.19 15:52:12 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:12 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:12 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:12 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:29 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"0"}}
2016.03.19 15:52:29 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:29 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:30 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:30 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:31 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"0"}}
2016.03.19 15:52:31 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:31 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:31 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}
2016.03.19 15:52:31 4: ipc fronthem:127.0.0.1:54416 (ws): ws send to client{"cmd":"item","items":["Zaunlicht.sw","1"]}
2016.03.19 15:52:33 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"connection":"conn-86RY6s3T","sender":"192.168.1.110","identity":"unknown", "message":{"cmd":"item","id":"Zaunlicht.sw","val":"0"}}
2016.03.19 15:52:33 5: ipc fronthem:127.0.0.1:54416 (ws): receive {"log":{"level":4,"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Zaunlicht.sw\",\"1\"]}"}}




Woran kann das liegen ?

Nachtrag:
Wenn ich im GAD nur "Write" zuordne, kann ich die Lampe vom smartVisu auch mehrfach schalten -- bekomme dann jedoch nicht mehr mit, wenn fhem geschaltet hat.
Also scheint es an der Kombi mit dem Read-Flag zu liegen...???


dev0

Lösch mal testweise das Attribut eventMap.

jksd

Auskommentieren des Attributs "eventMap" führt zum korrekten Verhalten. Bug in fronthem ?

jksd

#3
Habe auch die andere Art der Definition der eventMap getestet. "attr Zaunlicht eventMap off:Aus on:An" funktioniert auch nicht.

Darüber hinaus wird das Icon für den "1"-Zustand nicht angezeigt, obwohl es das Gleiche ist, wie für den "0"-Zustand. Auch dann nicht, wenn die eventMap auskommentiert ist.

{{ basic.switch('Zaunlicht', 'Zaunlicht.sw', icon1~'light_outdoor.svg', icon0~'light_outdoor.svg') }}

dev0


dev0


Zitat von: jksd am 19 März 2016, 22:47:29
Darüber hinaus wird das Icon für den "1"-Zustand nicht angezeigt
Das scheint unabhängig von eventMap zu sein. Sind beide icons vorhanden? Sonst mit firebug nachgucken.

jksd

Moin, 1000 Dank für die schnellen Hinweise.

ZitatDas scheint unabhängig von eventMap zu sein. Sind beide icons vorhanden? Sonst mit firebug nachgucken.
Tatsächlich, das SVG ist in grün nicht vorhanden. Ich war gedanklich vom fhem/floorplan-Mechanismus ausgegangen, bei dem ich Icons über css gefärbt hatte. Und ein Status war zuvor ja bereits ok.

ZitatBug in Fronthem
Bug in eventMap?
Sorry, ich wollte niemandem zu nahe treten !
Wie ist der basic.switch in Kombi mit den Konvertern implementiert ? Kann der aktuell nur "on" in "1" und "off" in "0" konvertieren (bzw. 0/1 in optional zu definierende Zahlenwerte) ?
Wie gehe ich mit Schaltern um, die heute z.B. per eventMap die Definition "Oben/Halb/Unten" in fhem haben ? Oder gibt es hierfür eine andere Möglichkeit in smartVisu/fronthem ? Ich habe das an vielen Stellen in fhem gemacht...

dev0

Zitat
Bug in Fronthem
Bug in eventMap?
Ich habe auch nur so eine Vermutung, dass es an eventMap liegt. Selbst benutze ich es nicht.

ZitatOder gibt es hierfür eine andere Möglichkeit in smartVisu/fronthem ?
Hast Du Dir die in der SV Doku schon mal die Parameter zu den GADs angesehen?
Beispiel basic.switch:

{{ basic.switch(id, gad, pic_on, pic_off, val_on, val_off) }}

Du kannst also angeben was der Switch für on und off senden soll. Ohne Parameter 0 und 1.

Wenn die Doku nicht reicht: es ist open source ;)

jksd

Hi, ja die Doku hatte ich gelesen. Habe auch den Source noch einmal angesehen. Damit wird klar, dass man anstatt 0/1 oder On/Off im html  auch andere Werte definieren kann, z.B:
{{ basic.switch('Zaunlicht', 'Zaunlicht.sw', icon1~'light_outdoor.png', icon0~'light_outdoor.png','An','Aus') }}

Das "An"/"Aus" muss zur eventMap-Definition in fhem passen.

Und nun das, was wichtig ist: Den fronthem Converter nicht auf OnOff stellen, sondern auf "Direct". So werden dann "An" und "Aus" bidirektional korrekt übertragen. Funktioniert jetzt auch mit SmartVisu und floorplan parallel.

Danke für die hilfreichen Feedbacks zuvor.