Rolladensteuerung, Abfrage auf / zu mit 2 Variablen

Begonnen von B.Stromberg, 29 August 2018, 07:46:31

Vorheriges Thema - Nächstes Thema

B.Stromberg

Guten Morgen!
Ich habe eine Rolladensteuerung "gebastelt" und in FHEM integriert.

Etwas tricky wird es mit den Abfragen der Zustände "auf" bzw. "zu"

Dies würde ich sehr gern durch Farbwechsel im Icon fts_shutter_updown von orange für geschlossen auf weiss für offen realisieren.
Config sieht bisher so aus:

Zitat
define WohnzimmerTuer jarolift 1 192.168.2.27 4210 4211
attr WohnzimmerTuer icon fts_shutter_updown
attr WohnzimmerTuer room Jarolift
attr WohnzimmerTuer webCmd up:stop:down:shade:learn

Damit lassen sich die Rolladen öffnen, schließen, stoppen und auch anlernen.

Bei den Readings gibt es ein Problem von der Hardware Seite aus. Diese werden (warum auch immer) nicht in jedem Define für jedes Gerät angezeigt.
Im Gerät WohnzimmerTuer jedoch ja.

Beispielhaft für 2 Rolläden gibt es folgende Readings:

Zitat
Badezimmer runter:
Disc_l_h 0000000010000000
rssi 0
rx_function 02
serial_rx 00bc6107

Badezimmer hoch:
Disc_l_h 0000000010000000
rssi 0
x_function 08
serial_rx 00bc6107

Büro runter:
Disc_l_h 0000000000010000
rssi 0
rx_function 02
serial_rx 00bc6104

Büro hoch:
Disc_l_h 0000000000010000
rssi 0
rx_function 08
serial_rx 00bc6104

Man könnte so also das Öffnen und Schließen über 2 Variablen auslesen, die für jeden Rolladenmotor unterschiedlich sind, nämlich
rx_function (08 für hoch und 02 für runter, bei allen Motoren immer gleich) und der serial_rx, welche für jeden Motor eine eigene Serial erzeugt.

Tja und nun hakt es bei mir...

Ich frage zum Beispiel das Reading für Buero mit serial_rx 00bc6104 ab und dann brauch ich auch noch zusätzlich das Reading rx_function, welches das Icon "Icon fts_shutter_updown" von Orange auf Weiss für Öffnen bzw. von Weiss auf Orange für Schließen schaltet.

Wäre für jede Hilfe dankbar.

Otto123

Guten Morgen,

fangen wir mal vorsichtig an, für jeglichen Code verwendest Du bitte Code Tags, die sind genau dafür gemacht. Die findest Du über dem  :-X Smiley - die # Taste.
Wenn es um Readings usw. geht, poste bitte ein komplettes list von dem Gerät und nicht bloß Begriffe

Ich habe nicht wirklich verstanden wie man Dir helfen kann.
Du willst lediglich Das Status Icon einfärben? Dazu müsstest Du den state setzen, geht mit stateFormat oder auch mit einem userReadings, ich kenne die jarolift Geräte leider nicht.
Zustätzlich brauchst Du dann noch devStateIcon für das Symbol und die Farbe.

Die Beschreibung findest Du in der Doku

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

B.Stromberg

Guten Morgen Otto!

Wenn es so "einfach" mit State gehen würde, würde ich hier nicht fragen, dass kenne ich glaube ich schon von den normalen Ein/Aus Schaltern.

Hier ist es etwas komplexer.

Es wird hier nicht je Gerät ein Reading erzeugt, es gibt das Reading nur in einem Device.
Unterschieden werden kann es nur anhand der Variable/Reading serial_rx
Zustände sind 02 für runter und 08 für hoch mit der Variable/Reading rx_function

Hier der gewünschte List, ist aber im Endeffekt das, was ich bereits oben geschrieben habe:

Internals:
   CONNECTS   1
   DEF        4 192.168.2.27 4210 4211
   FD         15
   NAME       Buero
   NR         131
   STATE      up
   TYPE       jarolift
   channel    4
   ip         192.168.2.27
   port       4210
   remoteport 4211
Attributes:
   icon       fts_shutter_updown
   room       Jarolift
   webCmd     up:stop:down:shade:learn


JA, ich weiß, dass dort ein STATE angegeben ist, jedoch wechselt dieser nicht, wenn ich den Rolladen mit dem Wandsender betätige, NUR wenn ich den Rolladen über FHEM steuere.
Die Readings aber ändern sich auch beim betätigen des Funktasters!
Deshalb wäre das auslesen der beiden Readings erforderlich.

CoolTux

Du hast ja gar keine Readings.
Ich würde dem Modulentwickler das Modul um die Ohren hauen. So kann man damit ja nicht mal arbeiten. Oder liegt das an was anderem?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

B.Stromberg

#4
Zitat von: CoolTux am 29 August 2018, 10:32:52
Ich würde dem Modulentwickler das Modul um die Ohren hauen. So kann man damit ja nicht mal arbeiten. Oder liegt das an was anderem?

Das Modul ist das hier angehängte

"Um die Ohren hauen" werde ich ihm das sicher nicht, ich bin dankbar dafür, dass er den Jarolift Code entschlüsselt hat und ich somit sehr günstig die Möglichkeit habe meine Rolladen über FHEM zu steuern.

Das Modul basiert auf einen ESP8266 ESP 12E plus CC1101 Transceiver.
Am USB angeschlossen liefert das Modul alle Readings 1A!

Gäbe es hier die Möglichkeit die benötigten Readings seriell über USB auszulesen?
Diese sehen wie folgt aus:

Decoded: 10029E8
CC1101_RSSI 99
Seriennummer: 45F500*

8*
2C
Device KeyLow : 684D5207
Device KeyHigh: 8EF2D151


Die mit "*" markierten Readings wären die, die es auszuwerten gilt...
Besserer Ansatz?

EDIT:

Sehe grade, da scheinen die Readings nach einem Reset des ESP untergegangen zu sein.
Hier das komplette List:


Internals:
   CFGFN     
   CONNECTS   1
   DEF        1 192.168.2.27 4210 4211
   FD         26
   NAME       WohnzimmerTuer
   NR         149
   STATE      shade
   TYPE       jarolift
   channel    1
   ip         192.168.2.27
   port       4210
   remoteport 4211
   READINGS:
     2018-08-29 10:07:10   Disc_l_h        0010110000000001
     2018-08-29 10:07:10   rssi            99
     2018-08-29 10:07:10   rx_function     08
     2018-08-29 10:07:10   serial_rx       0045f500
Attributes:
   icon       fts_shutter_updown
   room       Jarolift
   webCmd     up:stop:down:shade:learn

CoolTux

Also Readings werden gesetzt. Und eigentlich müssen die für alle Geräte da sein.
Ich kenne leider nicht die Geräte dahinter. Du schließt ein USB Gerät an was die ganzen Daten der Rollos empfängt?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Zitat von: B.Stromberg am 29 August 2018, 10:45:55

Decoded: 10029E8
CC1101_RSSI 99
Seriennummer: 45F500*

8*
2C
Device KeyLow : 684D5207
Device KeyHigh: 8EF2D151


Die mit "*" markierten Readings wären die, die es auszuwerten gilt...
Besserer Ansatz?

Das sind aber keine Reading sondern Datenpackete oder?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

B.Stromberg

JaNein.

Der ESP 8266 hängt am WLAN meiner Fritzbox und sendet die Befehle über den Transceiver via Funk 433MHZ an die Rolladenmotoren.
Der Transceiver empfängt aber auch die Funksignale der Wandtaster.

Der ESP kann, da er am WLAN hängt auch nur an ein USB Netzteil angeschlossen werden, ein Anschluss an den FHEM Server via USB ist also nicht erforderlich.
Das mit dem USB war nur eine Idee von mir zur Auswertung der Daten, da diese seriell über USB gelogged werden könnnen...

und auf deine andere Frage, ja das sind Datenpakete die über USB gelogged sind.


CoolTux

Ok zurück zu Deinem Problem. Jedes Device sollte eigentlich ein Reading state haben. Achtung Reading nicht Internal STATE
Das was ich jetzt so auf die einfache im Modul sehe ist das die auch gesetzt werden.

Ist das bei Dir nicht so?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

Zitat von: B.Stromberg am 29 August 2018, 09:34:00
jedoch wechselt dieser nicht, wenn ich den Rolladen mit dem Wandsender betätige, NUR wenn ich den Rolladen über FHEM steuere.
Es muß lt. Einleitung im Modul jeweils eine FB-ID gesetzt werden, wenn die FB-Signale erkannt werden sollen; das ist im List aber nicht zu erkennen.
ZitatWhile pressing a original remote, the serial number of this remote is displayed as an reading. copy this serial in lower case, and put a 0 infront, if serial is displayed with only 7-digits. Example: 4D5F632 -> 04d5f632. Insert this serial in attribute-> remote_serial.
Interessant wäre noch, wieso das nicht als 2-stufiges Modul gebaut wurde (vielleicht geht deswegen was verloren), kannst du mal ein list liefern von einem weiteren Device? So wie ich das verstanden habe, geht alles über den einen ESP; dann müßten sich die Definitionen ja auch irgendwie unterscheiden, oder? (Channel?) Und kann man den ESP irgendwie konfigurieren?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

CoolTux

Bin da voll Deiner Meinung. 2-stuffiges wäre korrekt. So macht er ja für jedes Device eine eigene Verbindung oder aber er hat eine Verbindung und regelt intern alles an die Devices. Habe ich ganz am Anfang bei meinem AMAD Modul so gemacht.
Aber auf die schnelle erkenne ich leider im Modul nichts dazu. Bin auch ehrlich nur halbherzig dabei  ::)
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

Na ja, wifilight macht das auch so, und von dem UDP-Kram verstehe ich leider nichts.

Sendeseitig ist das vermutlich kein Problem, macht z.B. Wifilight ja auch so.

Wenn es eine serielle Kommunikation wäre, müßte es m.E. aber für die Empfangsrichtung 2-stufig aufgebaut sein, weil da Doppelverbindungen nicht gehen; irritierend ist halt, dass die anderen Devices von den FB-Bedienungen gar nichts mitbekommen. Das spricht dafür, dass die Info grundsätzlich nur an ein Device weitergegeben wird (aber zumindest dort vorhanden ist).

Wenn das wiklich das Problem ist, könnte als workaround ein notify auf das Gerät/reading gelegt werden, das die Infos tatsächlich erhält. Das (bzw. der nachfolgende (myUtils-) Code) müßte dann nach dem passenden "Client" suchen und dort den Status korrigieren. Aber erst mal sollte das Attribut gesetzt werden, vielleicht hilft das schon und die Info wird weitergereicht? Immerhin hatte der Modulautor auch mehrere Rolläden, die er steuern wollte. Im Zweifel bitte auch mal da nachfragen, wo der Code herkommt ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

B.Stromberg

Danke das ihr Beiden euch dem Thema annehmt :)

Das Problem ist, ich kann leider keinen Kontakt zum Entwickler aufbauen.

Das Ganze ist hier zu finden:

http://www.bastelbudenbuben.de/2017/04/25/protokollanalyse-von-jarolift-tdef-motoren/#comment-687

Dort gibt es kein PN System und der Entwickler hat nirgends seine Mail hinterlassen.
Meine Fragen / Beiträge werden dort bisher auch noch nicht freigeschaltet, hatte seit Vorgestern 3 Beiträge geschrieben, welche noch freigegeben werden sollen...

@Beta-User
Die Geschichte mit der Remote Serial hatte ich bisher noch nicht so wirklich verstanden.
Soll das nun heißen ich muss, um den STATE korrekt zu haben AUCH ÜBER die Wandsender alle 10 Wandsender benennen und Serial Attribute schreiben?
Da ja jeder Motor einzeln mit define eingefügt wird, müsste dort also auch je Device sämtliche Fernbedienungen hinzugefügt?
Ich weiß es ist blöd, weil es nich dein Modul ist...
Aber du scheinst da 1000 Mal besser durchzublicken als ich...
Habe leider vom Programmieren sehr sehr beschränkte Kenntnisse....

B.Stromberg

Die Readings werden wohl nur an Channel 1 geliefert, dies ist bei mir das Device WohnzimmerTuer

Alle anderen Devices vom selben Typen (Rohrmotor) bekommen keine Readings.

ABER

In meine Markise ist ein anderes Jarolift Modul verbaut, dieses erhält auch Readings.

Hier das List:


Internals:
   CONNECTS   1
   DEF        11 192.168.2.27 4210 4211
   FD         22
   NAME       Markise
   NR         144
   STATE      down
   TYPE       jarolift
   channel    11
   ip         192.168.2.27
   port       4210
   remoteport 4211
   READINGS:
     2018-08-28 22:08:23   Disc_l_h        0000000000000000
     2018-08-28 22:08:23   reboot          Reboot done
     2018-08-28 22:08:23   rssi            0
     2018-08-28 22:08:23   rx_function     00
     2018-08-28 22:08:23   serial_rx       00000000
Attributes:
   icon       fts_shutter_updown
   room       Jarolift
   webCmd     up:stop:down:shade:learn


Allerdings scheinen Markise und WohnzimmerTuer auch nicht immer zuverlässig jeden Funkbefehl (von den Wandsendern) zu empfangen.
Sie tun dies allerdings, meist wenn ich den betreffenten Motor via Fhem kurz vorher angesteuert habe...


CoolTux

Wir reden beim Wort Modul aber schon vom FHEM Modul, oder?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net