Autor Thema: Einbindung von "Centronic" Fernbedienungen in FHEM  (Gelesen 37354 mal)

Offline MarNei

  • New Member
  • *
  • Beiträge: 8
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #180 am: 13 Juli 2019, 17:20:51 »
Danke, Christian für Deine Lösung. Ja, der Roto kann nur hoch und runter, also keine Zwischenstationen, deswegen hilft mir UP2 und DOWN2 leider nichts. An sowas wie Deine Lösung hatte ich auch gedacht. Ich habe mich allerdings gefragt, ob ich generell über die Fahrzeitmessung die Position bestimmen kann. So läuft das auch bei meinen Somfy-Rollläden mit dem Somfy-Modul und CUL. Ich muss da mal reinschauen, wie es dort gemacht ist. Dann kann über UP/DOWN und Fahrzeit nach einem HALT festgestellt werden, auf welcher Position genau der Rollladen steht. Natürlich darf man dann nur noch ausschließlich über Fhem die Rollos steuern.

Aber jetzt erfreue ich mich erstmal daran, dass ich überhaupt die Rollläden über fhem hoch- und runterfahren kann. :) Mein Elektriker hatte gemeint, dass man für 300€ pro Rollo (ich habe drei) die Rotos steuerbar machen kann. Jetzt hat es mich gerade mal etwas mehr als 50€ gekostet. (Nochmals einen herzlichen Dank an Ole!!)

Offline mwu406

  • Newbie
  • Beiträge: 2
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #181 am: 14 Juli 2019, 17:55:57 »
Vielen Dank an alle,

ich stand auch vor dem Problem 6 Fenster inkl. Rollläden anzubinden und kann dies Dank dem Skript nun auch tun.

Den Pair-Befehl hatte ich nicht auf dem Schirm, dachte das Pairing müsste ich über Docklight machen :-[ Aber dank dem Skript ist das ganze ja ein Kinderspiel.

Gruß
Martin

Offline ole1986

  • New Member
  • *
  • Beiträge: 13
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #182 am: 14 Juli 2019, 22:19:25 »
Hallo,

eine leicht ausgebesserte Variante der Implementation des centronic-stick.py script in FHEM. Inklusive Auswahl der Kanäle

In dem attribute CENTRONIC_PATH kann dann für den notifier entsprechend angepasst werden
Es gibt nur noch einen Notifier. Dieser horcht auf UP|DOWN|HALT|DOWN2|UP2.

Das ermöglicht die Vorauswahl der Kanäle, ohne das dabei jedes mal das script ausgeführt wird.

defmod Shutter dummy
attr Shutter userattr CENTRONIC_PATH
attr Shutter CENTRONIC_PATH sudo -u pi /home/pi/centronic-py/centronic-stick.py
attr Shutter readingList number
attr Shutter room Becker
attr Shutter setList number:0,1,2,3,4,5,6,7,8,9,15
attr Shutter webCmd number:UP:HALT:DOWN:DOWN2
attr Shutter webCmdLabel Nummer:Hoch:Anhalten:Runter:Schutz

Und das ist der erforderlich Notifer

defmod Shutter_Notifier notify Shutter:(UP|DOWN|HALT|DOWN2|UP2) {print "### Running centronic '". AttrVal("Shutter","CENTRONIC_PATH","") ."' script with ". ReadingsVal("Shutter","state","") . " on channel " . ReadingsVal("Shutter","number","") . "\n";; system(AttrVal("Shutter","CENTRONIC_PATH","") . " --send ".ReadingsVal("Shutter","state","")." --channel ". ReadingsVal("Shutter","number","") ." &")}
attr Shutter_Notifier room Becker


Ich habe beispielsweise den CENTRONIC_PATH angepasst um Ihn mit dem Benutzer "pi" auszuführen. Das ganze über "sudo -u pi <path to centronic script>"
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8519
  • eigentlich eher user wie "developer"
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #183 am: 15 Juli 2019, 07:50:43 »
Kleine Anmerkung:

Evtl. könnte mal jemand versuchen, das ganze mit ROLLO zu konfigurieren statt es an einen Dummy zu hängen. Damit müßte es m.E. möglich sein, auch Zwischenpositionen anzufahren (ROLLO überwacht die Timings) und das ganze z.B. dann in AutoShuttersControl einzubinden.
(Ich habe aber weder ROLLO im Einsatz noch solche Centronic-Teile, und lese hier nur zwangsweise mit, weil ich ganz am Anfang mal was zur allgemeinen Vorgehensweise geschrieben hatte...

Viel Erfolg damit!
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Phiolin

  • Full Member
  • ***
  • Beiträge: 196
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #184 am: 26 September 2019, 14:57:27 »
@ole1986: Danke für die Programmierarbeit!

Kann das Python Script vielleicht auch mit Devices umgehen, die via ser2net über das Netzwerk zur Verfügung gestellt werden?
Dann müsste der USB Stick nicht zwingend direkt am FHEM Rechner angeschlossen sein, bzw. nicht umständlich über SSH das Kommando auf einem anderen Rechner ausgeführt werden, wenn z.B. aufgrund räumlicher Entfernung der FHEM Rechner zu weit vom Rolladen entfernt ist. Kenne mich mit Python leider nicht soweit aus, aber vielleicht ist das ja nur eine kleine Anpassung?

Die Kommunikation an sich bleibt ja die gleiche, nur müssten die Kommandos anstatt via /dev/serial/... über TCP an den entsprechenden Host:Port geschickt werden.
« Letzte Änderung: 26 September 2019, 15:01:49 von Phiolin »

Offline toolking

  • New Member
  • *
  • Beiträge: 3
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #185 am: 16 November 2019, 00:27:14 »
Zitat von: Phiolin
@ole1986: Danke für die Programmierarbeit!
Auch von meiner Seite: Danke an die Vorarbeit aller Beteiligten.
Zitat von: Phiolin
Kann das Python Script vielleicht auch mit Devices umgehen, die via ser2net über das Netzwerk zur Verfügung gestellt werden?
@ole1986 Ich hab Dir 'nen PR gestellt.
Mein Patch ist hier: https://github.com/toolking/centronic-py zu finden. Und um die o.g. Frage zu beantworten: Ja kann es.
12xLaCrosse via JeeLink+ser2net, 18xMAX! via  MAXCUN, SML(OBIS) via ser2net, 4xPCA301 via JeeLink+ser2net, Div. HM via HM-LAN-GW

Offline halloaber

  • New Member
  • *
  • Beiträge: 4
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #186 am: 28 November 2019, 08:09:43 »
Eine Frage zur centronic-stick.num Datei:

Wird für jeden Empfänger (Dachfenster/ Rolladen) eine eigene Datei angelegt?
channel 1 centronic-stick.num1
channel 2 centronic-stick.num2
...
oder wie wird die Synchronität beibehalten?
Viele Grüße, Rainer

Offline ole1986

  • New Member
  • *
  • Beiträge: 13
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #187 am: 10 Dezember 2019, 09:28:34 »
Hallo,

irgendwie habe ich keine Nachrichten erhalten das neue Beiträge in diesem Thread verfügbar sind.

@Beta-User
Zwischenpositionen nur über timings. Mit fehlte dem ROLLO Device immer eine art von intermediate "event" um alles. Siehe: https://forum.fhem.de/index.php/topic,95832.msg958853.html#msg958853

@Phiolin
In der version 0.4 ist dieses dank @toolking implementiert. Dort kannst du mit dem Parameter "--device <host:port>" das Ziel angeben.

@toolking Danke nochmal

@halloaber

TL;DR Es wird keine Sychronität gewährleistet. Es ird immer der letzte werde aus der *.num Datei genommen. Dadurch "verfallen" die möglichen Nummernbereiche für andere channels.
---
Ein sehr guter Hinweis. Derzeit wird die *.num Datei für alle Aufrufe gleichermaßen verwendet. Das heißt wenn du beispielsweise nur channel 1 kontinuierlich öffnest/schließt wird der Wert in der *.num Datei bei jedem Befehl um 1 erhöht.
Nimmst du nun den z.B. Channel 2 wird der zuletzt bekannte Höchstwert aus der *.num verwendet.  Verwendest du beispielsweise den Kanal 15 (vergleichbar eines Broadcast Aufrufes) reagieren alle Kanäle darauf und es wird nur ein (bzw. zwei Zahlen) erhöht.

Falls du irgendwann das maximale limit erreicht heißt, kannst du am besten mit dem Master sender alle anderen bekannten Sender löschen (Dabei bleibt der Mastersender grundsätzlich bestehen) und alle erneut über das Skript einprogrammieren.
Dann fängt der Zählerstand wieder von vorne an.

Offline halloaber

  • New Member
  • *
  • Beiträge: 4
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #188 am: 10 Dezember 2019, 16:17:57 »
Hallo OLE,
danke für die Bestätigung.
Mein Vorschlag wäre, für jeden Channel eine eigene "num" Datei zu erstellen.
Es ist so wie ich Dein .py verstehe als Schnelllösung kein Problem den als Parameter übergebenen Channel in den Dateinamen einzubauen.
Zeile 10 im Python Script:
number_file = "centronic-stick.num.%s" % (sys.argv[4])
Wünschenswert wäre natürlich, das alles in einer Datei zu machen. Hier musste dann entsprechend der Wert gesucht werden.
Viele Grüße, Rainer
« Letzte Änderung: 10 Dezember 2019, 17:00:20 von halloaber »

Offline ole1986

  • New Member
  • *
  • Beiträge: 13
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #189 am: 10 Dezember 2019, 17:00:00 »
@halloaber

Ich stimme da grundsätzlich zu.

Das Problem an dieser Stelle ist vielmehr die Kompatibilität zu dem vorherigen Vorgehen.
Da ich davon ausgehen muss, das die derzeitige Lösung bereits von einigen in Verwendung ist muss ich natürlich dafür sorgen, das von dieser Zahl an alle Channels die "selbe" Nummer erhalten und ab da an dann autonom fortlaufen.

Darf ich Fragen, ob du bereits auf eine Grenze der fortlaufenden Nummer gestoßen bist? Wie ist denn dein derzeitiger Wert in der *.num? Und wie lange ist es im Einsatz?

Nach meiner groben Theorie dürfte es dir bis zu 179 befehle pro Tag erlauben um ein Jahr voll zu bekommen.
Ich persönliche habe höchstens 10 befehle am Tag. Sodass ich mir in ca. 15 Jahren mal Gedanken mach muss die Sender zurückzusetzen.

Offline halloaber

  • New Member
  • *
  • Beiträge: 4
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #190 am: 10 Dezember 2019, 17:10:37 »
Hallo Ole,
nein ich habe da noch keine Erfahrung. Die Fenster und Rolladen von Roto sind gerade erst eingebaut.
Dennoch sehe ich hier die Gefahr des auseinander laufen.
Gerade wenn es autonom betrieben wird (meine Frau ;-) ) dann muss es immer gehen ohne neu anzulernen.

Viele Grüße, Rainer

Offline toolking

  • New Member
  • *
  • Beiträge: 3
Antw:Einbindung von "Centronic" Fernbedienungen in FHEM
« Antwort #191 am: 10 Dezember 2019, 19:24:13 »
Ich habe mit Hilfe eines Lockfiles im Script die parallele Ausführung verhindert.

https://github.com/toolking/centronic-py/tree/parallel

Das war für mich eine schnelle Lösung.
12xLaCrosse via JeeLink+ser2net, 18xMAX! via  MAXCUN, SML(OBIS) via ser2net, 4xPCA301 via JeeLink+ser2net, Div. HM via HM-LAN-GW