Neues Modul: Rolladensteuerung

Begonnen von ThomasRamm, 11 Januar 2016, 00:00:21

Vorheriges Thema - Nächstes Thema

Jackeson

#495
also Positionen hab ich aber warum die Fehlermeldung was mach ich falsch?

Unknown argument up, choose one of  closed:noArg half:noArg position:0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,91,92,93,94,95,96,97,98,99,100 blocked:noArg stop:noArg extern:open,closed,stop unblocked:noArg open:noArg reset:open,closed

das sind meine einstellungen
Internals:
   NAME       OG.BueroMichael_Rollo
   NR         156
   STATE      closed
   TYPE       ROLLO
   stoptime   1491602535
   Readings:
     2017-04-08 00:02:07   command         closed
     2017-04-08 00:02:07   desired_position 100
     2017-04-08 00:02:07   drive-type      modul
     2017-04-08 00:02:07   last_drive      drive-down
     2017-04-08 00:02:15   position        100
     2017-04-08 00:02:15   state           closed
Attributes:
   autoStop   0
   cmdIcon    half:remotecontrol/black_btn_MENUDroid open:remotecontrol/black_btn_CHUP closed:remotecontrol/black_btn_CHDOWN stop:remotecontrol/black_btn_STOP up2:fts_blade_arc_close_00@white down2:fts_blade_arc_close_100@white
   commandDown set OG.BueroMichael_Rolladen on
   commandDown2 set OG.BueroMichael_Rolladen position 99
   commandStopDown set OG.BueroMichael_Rolladen on
   commandStopUp set OG.BueroMichael_Rolladen off
   commandUp  set OG.BueroMichael_Rolladen off
   commandUp2 set OG.BueroMichael_Rolladen position 99
   devStateIcon open:fts_shutter_10:closed closed:fts_shutter_100:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop position-100:fts_shutter_100:open position-90:fts_shutter_80:closed position-80:fts_shutter_80:closed position-70:fts_shutter_70:closed position-60:fts_shutter_60:closed position-50:fts_shutter_50:closed position-40:fts_shutter_40:open position-30:fts_shutter_30:open position-20:fts_shutter_20:open position-10:fts_shutter_10:open position-0:fts_shutter_10:closed
   eventMap   /up 99:up2/down 99:down2/
   excessBottom 2
   excessTop  4
   resetTime  0
   secondsDown 24
   secondsUp  26
   switchTime 1
   type       normal
   webCmd     open:closed:half:stop:position:up2:down2


vielleicht kann mal jemand drüberschauen ich find den fehler nicht
aller anfang ist schwer

KernSani

Zitat von: Jackeson am 07 April 2017, 23:21:31
also Positionen hab ich aber warum die Fehlermeldung was mach ich falsch?

Unknown argument up, choose one of  closed:noArg half:noArg position:0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,91,92,93,94,95,96,97,98,99,100 blocked:noArg stop:noArg extern:open,closed,stop unblocked:noArg open:noArg reset:open,closed
Hast du auch die zweite coding Zeile entsprechend angepasst?
my @positionsets = ("0","1","2", ... "99","100");
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

#497
ja wie du geschrieben hast
die pos gehen ja auch aber ich kann sie nicht mit
commandUp2 set OG.BueroMichael_Rolladen position 99
eventMap   /up 99:up2/down 99:down2/
benutzen
aller anfang ist schwer

KernSani

ich würde mal vermuten, da geht irgendwas mit den eventMaps o.ä. schief. Nimm die mal raus und gib dann in der Kommandozeile ein:

set OG.BueroMichael_Rolloposition 2

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

also dies geht "set OG.BueroMichael_Rollo position 99" in der fhem eingabeleiste
eventmap hab ich raus
aber die Fehlermeldung bleibt gleich

Unknown argument down2, choose one of  closed:noArg reset:open,closed unblocked:noArg position:0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,91,92,93,94,95,96,97,98,99,100 stop:noArg open:noArg half:noArg extern:open,closed,stop blocked:noArg
aller anfang ist schwer

KernSani

@Jackeson:

down2 ist ja auch kein gültiges Kommando... Ändere mal dein WebCmd auf z.B.
open:closed:half:stop:position:position 2
Dann solltest du einen Button (Text) Position 2 bekommen, mit dem du auf 2% fahren kannst.

Du brauchst übrigens kein
commandDown2   #  set OG.BueroMichael_Rolladen position 2
commandUp2  #  set OG.BueroMichael_Rolladen position 2

Diese attribute dienen nur dazu mehrere Befehle an den Rollladen zu senden (wenn der aus commandUp bzw commandDown nicht ausreicht)

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson


Na also geht  :D
vielen Dank für deine Hilfe KernSani
jetzt passt alles schönes WE
aller anfang ist schwer

KernSani

@Jackeson:
Iach habe auf Github eine Version eingestellt, die es erlaubt alle Positionen (auch mit Nachkommastellen) anzusteuern: https://github.com/RettungsTim/fhem-rollo/tree/allow_all_positions/FHEM
Die Parameter bleiben in 10er-Schritten, wie gehabt, aber mit z.B. set <myDevice> position 12.345 kann jede beliebige Position vorgegeben werden (wie genau das dann stimmt ist ein anderes Thema).

Wenn du es bei dir testen könntest (und es funktioniert), könnte es in den Master (das heißt die offizielle Version) übernommen werden.

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

#503
Hallo KernSani,
hab es gemacht und getestet aber bleibt an der gleichen Stelle stehn wie bei position 99 (nachgemessen)
es wurden beide pm von mir durch deine neue ersetzt.
hab mal nen neustart gemacht glatte Prozent macht er also 99, aber nach dem neustart läuft er bei
99.843 einfach weiter.
hier ein list von mir:

Internals:
   NAME       OG.BueroMichael_Rollo
   NR         156
   STATE      closed
   TYPE       ROLLO
   stoptime   1491769415
   Readings:
     2017-04-09 22:23:32   command         position-99.843
     2017-04-09 22:23:32   desired_position 99.843
     2017-04-09 22:23:32   drive-type      modul
     2017-04-09 22:23:32   last_drive      drive-up
     2017-04-09 22:23:35   position        99.843
     2017-04-09 22:23:35   state           closed
Attributes:
   autoStop   0
   cmdIcon    half:remotecontrol/black_btn_MENUDroid open:remotecontrol/black_btn_CHUP closed:remotecontrol/black_btn_CHDOWN stop:remotecontrol/black_btn_STOP
   commandDown set OG.BueroMichael_Rolladen on
   commandDown2 set OG.BueroMichael_Rolladen position 99.843
   commandStopDown set OG.BueroMichael_Rolladen on
   commandStopUp set OG.BueroMichael_Rolladen off
   commandUp  set OG.BueroMichael_Rolladen off
   commandUp2 set OG.BueroMichael_Rolladen position 99.843
   devStateIcon open:fts_shutter_10@green:open  closed:fts_shutter_100@red:closed  half:fts_shutter_50@yellow:half  drive-up:fts_shutter_up@yellow:stop  drive-down:fts_shutter_down@yellow:stop position-100:fts_shutter_100@red:open position-99:fts_shutter_80@yellow:closed position-90:fts_shutter_80@yellow:closed position-80:fts_shutter_80@yellow:closed  position-70:fts_shutter_70yellow:closed  position-60:fts_shutter_60@yellow:closed  position-50:fts_shutter_50@yellow:closed  position-40:fts_shutter_40@yellow:open  position-30:fts_shutter_30@yellow:open  position-20:fts_shutter_20@yellow:open  position-10:fts_shutter_10@yellow:open  position-0:fts_shutter_10@green:closed
   excessBottom 2
   excessTop  4
   group      1.Rolladen
   icon       fts_shutter@Violet
   resetTime  0
   room       OG.BueroMichael
   secondsDown 24
   secondsUp  26
   switchTime 1
   type       normal
   webCmd     open:closed:half:stop:position:position 99.843


frage :ich kann der 99 kein cmdicon geben zb.fts_blade_arc_close_00@white
dann verschwindet die position 100.90.80.70 usw.
aller anfang ist schwer

KernSani

Wegen 99.843: Wie isses denn bei 88.25 oder so (99.843 ist vielleicht zu nah an 100 als dass er das noch sekundenmäßig aussteuern könnte, obwohl's bei mir funktioniert)

Wgen cmdIcon: Dann muss die eventmap wieder her...

attr myRollo eventMap /position 2:up2/

und
attr myRollo webCmd open:closed:half:stop:position:up2
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

Hallo,
hab gerade überlegt schöner wäre es ja wenn man die half Taste so einstellen könnte wie man sie braucht weil ich Denke das die Stellung niemand so richtig braucht da die Sonne bei jeden anders steht.

Bei mir dreht es sich um eine Jalousie da man diese ja schräg stellen kann deshalb wäre die Idee von dir klasse
wenn man auch bsp.99.885 einstellen kann da eine Jalousie immer gleich anzieht ,
dagegen ein Rollo vom wickelverhalten immer anders ist

hab 99,5 getestet ging auch nicht werde morgen nochmal versuchen
aller anfang ist schwer

jazzor

#506
Bezüglich der Möglichkeit einer Kanalwahl und deren Umsetzung:

Zitat von: KernSani am 03 April 2017, 22:02:31
Kanalwechsel soll vor dem eigentlichen Kommando erfolgen: Das ROLLO Modul arbeitet stumpf die in den command.* Attributen angegebenen Befehle ab (auch mehrere in einem Attribut), es sollte also eigentlich möglich sein den Kanalwechsel vorher aufzurufen.
Genau richtig.

Zitat von: KernSani am 03 April 2017, 22:02:31
Eine sequentielle Abarbeitung im ROLLO-Modul selbst zu erzwingen wäre schwierig, da im Grunde jeder ROLLO eine unabhängige Instanz ist. Was ich mir vorstellen könnte, wäre ein neues Modul, ähnlich einem IODev, das als "Queue" dient, alle ROLLOs schicken ihre Kommandos an dieses neue Modul, das dann open/closed einfach durchreicht und half o.ä. puffert und sequentiell abarbeitet... Wäre aber auch nicht ohne Aufwand...
Ich habe mir darüber in den letzten Tagen nochmal ein paar Gedanken gemacht, daher leider die längere Funkstille.
Ein IO-Device, welches sozusagen als "Queue" dient wäre wahrscheinlich die optimalste Lösung, allerdings bin ich mir nicht sicher, ob eine 'angeflanschte' Lösung funktionieren kann, daher mal dazu  folgende Gedankenanstöße bzw. Featurerequests:

Abarbeiten nach FiFo vs. optimiertes abarbeiten:
Standardabarbeitungsreihenfolge sollte nach dem FiFo-Prinzip laufen; Was zuerst rein kommt, wird zuerst umgesetzt.
Als Experteneinstellung würde ich eine zeitoptimierte Variante vorschlagen: Ist Wartezeitraum in einer Befehlskette zu einem Rollo lang genug, kann der nächste Befehl dazwischen geschoben werden.
Zur Verdeutlichung habe ich mal ein Bild erstellt (optimierung.jpg).
Allerdings ergeben sich für das optimierte Abarbeiten m.E. folgende Anforderungen:

  • Die Queue muss die Dauer der Befehle kennen
  • Die Queue muss Auto-Stop berücksichtigen können.
Ein Befehl mit 100% oder 0% ist nach dem initialen hoch/runter bei aktiviertem AutoStop fertig. (Im Bild Befehl 2.)
Wenn ich das richtig verstehe, muss die Queue also eher vor das Rollomodul, braucht aber infos aus dem Rollomodul.

Daher würde ich einfach nur zum sequenziellen Abarbeiten tendieren, da (wenn ich das richtig sehe) dann das IO-Device komplett die Steuerung übernehmen könne.
Kann das jemand bestätigen? Oder denke ich zu kompliziert? ;-)

Invers

Ich schalte meine Kanäle elektronisch. Da sind also 15 verschiedene Kanäle innerhalb einer Sekunde gar kein Problem.
Da das Rollo-Modul bis zu 3 Befehle für Start, Stop, Up, Down usw annimmt, könnte man also z. B. für Up sagen:
Befehl 1 Setze Kanal 5
Befehl 2 setze Up

Das ginge auch für alle anderen Befehle. Bei Autostop (Endabschaltung durch Rollo selbst) kann das teilweise sogar entfallen.

Was man also benötigen würde, wäre eine wählbare Pause oder eine Pause von einer Sekunde zwischen den 2 genannten Befehlen.

Vielleicht bin ich ja auch völlig auf dem Holzweg.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

willybauss

Zitat von: Invers am 10 April 2017, 11:46:43
Was man also benötigen würde, wäre eine wählbare Pause oder eine Pause von einer Sekunde zwischen den 2 genannten Befehlen.

Sowas?
http://raspi2:8083/fhem/docs/commandref_DE.html#sleep
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Invers

Der Link geht zwar nicht, aber ich kenne sleep.
Könnte vielleicht gehen, wenn man zwei Befehle in die Zeile des Rollo-Moduls schreiben könnte. Nach sleep muss ja immer ein Befehl folgen.
In der MyUtils ging das nur, wenn die Befehle vorher in einen String gebastelt wurden.

Auch bei dieser Methode bestünde natürlich die "Chance", dass 2 Rollobefehle kollidieren. Aber durch die hohe Geschwindigkeit beim Schalten ist die Wahrscheinlichkeit, dass es knallt, relativ gering.
Könnte man für diese eingestellte Zeit alle Rollobefehle für alle Instanzen lahm legen, wären alle Probleme beseitigt.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2