SOMFY Rolladen und Handsender Status bzw. Position abgleichen mit SIGNALduino

Begonnen von timtom, 20 Mai 2017, 14:35:24

Vorheriges Thema - Nächstes Thema

Pitdahl

Hallo,
genau das würde mich auch brennend interessieren da ich mich mit DOIF etc. noch zu wenig auskenne.

Und ich habe noch ein zweites Problem, habe jetzt per sunset eine Regel zum gemeinsamen Herunterfahren definiert,
meine 3 Somfys in "Alle_Rolladen" gepackt, es fährt aber nur das erste herunter. Wenn da schon jemand defines hätte bitte auch gern posten.
Kleine Kommentare wären hilfreich.
Hier mein Sunset: id_Rolladen_Steuerung
##Rolladen sind zwischen Sonnenuntergang und Sonnenaufgang geschlossen, sonst auf
([{sunset(-1500, "16:00", "22:00")}]-[{sunrise(+1800, "07:00", "9:00")}])
   (set Alle_Rolladen off)
DOELSE (set Alle_Rolladen on)


DeviceOverview
Alle_Rolladen
DEF
Rol_AUTO Rol_Stube_FHEM Rol_Terasse_FHEM Rol_Bad_FHEM

Vielen Dank,
Gruß Pit
Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

Elektrolurch

Für den Abgleich mit den Handsender habe ich oben eine modifizierte SOMFY-Datei gepostet (zum Testen).
Zitat:
Und ich habe noch ein zweites Problem, habe jetzt per sunset eine Regel zum gemeinsamen Herunterfahren definiert,
meine 3 Somfys in "Alle_Rolladen" gepackt, es fährt aber nur das erste herunter. Wenn da schon

Warum lernst Du nicht die 3 Rolladen auf einen neuen Kanal an, wenn Du dann von fhem aus auf dem Kanal einen Befehl sendest, gehen alle drei Rolladen auf einmal. Problem ist nämlich, dass wenn fhem zu dicht hintereinander an verschiedene Somfys  Signale sendet, gehen welche verloren. Darüber wurde schon gepostet. Daher verfahre ich die Rollos immer im zeitlichen Abstand von 10 s von fhem aus, wenn ich mehrere verfahren will. Seit dem gibt es auch keine Probleme mehr.

Elektrolurch
configDB und Windows befreite Zone!

Pitdahl

Hallo Elektrolurch,

auf die Idee bin ich noch gar nicht gekommen mehrere Sender auf einen Kanal anzulernen. Das ginge natürlich und würde die Funklast minimieren.
Trotzdem muss ich aber auch verschiedene Devices irgendwie zu einer Gruppe zusammen fassen, da mein viertes Rollos kein Somfy ist, außerdem
gibt es Situationen, wo ich nicht alle drei Somfys zusammen hoch/runter fahren möchte da die Terasse z.B. offen bleiben soll, oder ich das eine
oder andere Rollos nicht komplett rauf fahren möchte.

Wie stelle ich das dann an z.B. mit den 10s wo trage ich sowas ein, bzw. wie setzt man das um und wie bewerkstellige ich das Hochfahren z.B, auf 50% ?

Zu dem Synchen der Anzeige:
Hier wäre ein post von funktionierenden defines echt klasse, als Anfäger blicke ich noch nicht durch. Die geänderte Somfy.pm im entsprechenden Verzeichnis
austauschen ist klar, aber welche Defines brauche ich sonst noch, das geht in den Posts etwas durcheinander, Du hast da folgendes gepostet:
attr Az_FB_FRoll userattr associated-devices
attr Az_FB_FRoll associated-devices  Az_FRolladen
und
sub Roll_FB_not($$)
{
my($fb,$event) = @_;
Log3($rolladenselektor,1,"Roll_FB_not: $fb event $event");
my ($rd,$val) = split(' ',$event);

return undef if($fb eq 'ExtMarkise');
return if($rd ne 'parsestate:');

# fb format is: xx_FB_[TF]Roll
# T = door, F = window FB = remote
# xx shortcut for room
# Somfy device for send
# xx_[TF]Rolladen
# example:
# FB: Wz_FB_TRoll
# Somfy: Wz_TRolladen

my $d = $fb . 'aden';
$d =~s/FB_//; # transform name
Log3($rolladenselektor,1,"set  $d virtual $val");
fhem("set  $d virtual $val");

return undef;
} # end sub Roll_FB_not

timtom wieder das:
([wz_RolladenHandsender:parsestate] eq "on") ##down
  (attr wz_Rolladen dummy 1)
  (set wz_Rolladen on)
  (attr wz_Rolladen dummy 0)
DOELSEIF ([wz_RolladenHandsender:parsestate] eq "off") ##up
  (attr wz_Rolladen dummy 1)
  (set wz_Rolladen off)
  (attr wz_Rolladen dummy 0)
DOELSEIF ([wz_RolladenHandsender:parsestate] eq "stop") ##stop
  (attr wz_Rolladen dummy 1)
  (set wz_Rolladen stop)
  (attr wz_Rolladen dummy 0)

Was brauche ich nun wirklich und was wird wo hinterlegt, Ihr seid da soviel weiter, aber als Anfänger blickt man da nicht durch.
Daher wäre es schön mal alles zu posten wie auch Arnd es sich gewünscht hat:
Hi,
hat jetzt jemand die Doif/Dummy Variante laufen und kann mal alles notwendige an defines posten?
Gruß Arnd

Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

Elektrolurch

Hallo,

1. Mit der 99_myUtilsSOMFY entfällt der Code für das notify, das macht das Modul jetzt schon selber.
2. mit DOIf hat das von mir vorgeschlagene nichts zu tun.
3. Die beiden attribute werden noch benötigt. Der Az_FB_Roll ist der Handsender, der sollte vom SignalDuino ja automatisch per autocreate angelegt erden, wenn Du auf den Handsender drückst.
Der Az_Rolladen ist  das fhem - Device, was Deinen Rolladen ansendet. Mit dem Atribut weiß das Az_FB_Roll Objekt, wem es die Info über den Handsender schicken muss.

Mehr ist nicht von nöten. Alle anderen Vorshcläge, die da vor meinem Post gemacht wurden, sind obsulet.

Elektrolurch
configDB und Windows befreite Zone!

Pitdahl

Hallo Elektrolurch,

ich habe das jetzt mal versucht umzusetzen, die 99_myUtilsSOMFY.pm gegen 10_SOMFY.pm ersetzt. Leider waren nach dem restart meine Somfy Devices alle weg.
Ich hab dann noch mal welche neu angelegt, aber die Icons synchen nicht. Wenn ich dann die  99_myUtilsSOMFY.pm editiere und wieder schließe bekomme ich aber folgende Meldung:
syntax error at ./FHEM/99_myUtilsSOMFY.pm line 112, near "package main" BEGIN not safe after errors--compilation aborted at ./FHEM/99_myUtilsSOMFY.pm line 114.
Hier meine Definitionen:
define EG_FHEM_Rol_Terasse SOMFY 581202;
attr EG_FHEM_Rol_Terasse IODev sduino;
attr EG_FHEM_Rol_Terasse devStateIcon open:fts_shutter_10 10:fts_shutter_10 20:fts_shutter_20 30:fts_shutter_30 40:fts_shutter_40 50:fts_shutter_50 60:fts_shutter_60 70:fts_shutter_70 80:fts_shutter_80 90:fts_shutter_90 down:fts_shutter_100 closed:fts_shutter_100;
attr EG_FHEM_Rol_Terasse drive-down-time-to-100 23;
attr EG_FHEM_Rol_Terasse drive-down-time-to-close 27;
attr EG_FHEM_Rol_Terasse drive-up-time-to-100 4;
attr EG_FHEM_Rol_Terasse drive-up-time-to-open 28;
attr EG_FHEM_Rol_Terasse eventMap on:runter stop:stop off:rauf;
attr EG_FHEM_Rol_Terasse room Rolladen;
attr EG_FHEM_Rol_Terasse webCmd runter:stop:rauf;
attr EG_FHEM_Rol_Terasse room Rolladen;
attr EG_FB_Rol_Terasse userattr associated-devices;
attr EG_FB_Rol_Terasse associated-devices EG_FHEM_Rol_Terasse;

define EG_FB_Rol_Terasse SOMFY E740BB;
attr EG_FB_Rol_Terasse IODev sduino;
attr EG_FB_Rol_Terasse devStateIcon open:fts_shutter_10 10:fts_shutter_10 20:fts_shutter_20 30:fts_shutter_30 40:fts_shutter_40 50:fts_shutter_50 60:fts_shutter_60 70:fts_shutter_70 80:fts_shutter_80 90:fts_shutter_90 down:fts_shutter_100 closed:fts_shutter_100;
attr EG_FB_Rol_Terasse drive-down-time-to-100 23;
attr EG_FB_Rol_Terasse drive-down-time-to-close 27;
attr EG_FB_Rol_Terasse drive-up-time-to-100 4;
attr EG_FB_Rol_Terasse drive-up-time-to-open 28;
attr EG_FB_Rol_Terasse eventMap on:runter stop:stop off:rauf;
attr EG_FB_Rol_Terasse room Rolladen;
attr EG_FB_Rol_Terasse webCmd runter:stop:rauf;
attr EG_FB_Rol_Terasse room SOMFY;
attr EG_FB_Rol_Terasse userattr associated-devices;
attr EG_FB_Rol_Terasse associated-devices EG_FB_Rol_Terasse;


Was mach ich falsch?
Gruß Pit
Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

Elektrolurch

Hallo Pit,

Zeile 112 ist überhaupt die erste Codezeile in der 99_myUtilsSOMFY.pm.

Da muss irgendwie digitaler Schmutz hereingekommen sein....

Mach die Datei mit dem edit-Befehl in fhem auf und schau Dir mal den Anfang an.
Da fängt jede Zeile mit # an, ist also auskommentiert.

und in Zeile 112 steht:
package main;


Wenn das Modul nicht geladen werden kann, sind natürlich auch die angelegten devices und Attribute nach dem Neustart weg. -> da ja kein Modul da.

Da macht es also auch keinen Sinn, dass Du mir hier die Definitionen postes....

Elektrolurch
configDB und Windows befreite Zone!

Pitdahl

Hallo Elektrolurch,

vielen Dank für die Antwort, gibt natürlich Sinn, wenn Fehler in der .pm sind, das die devices weg sind. Ich habe nun
eine neue 99_myUtilsSOMFY.pm eingespielt, nun bleiben die devices da. Leider passiert in der Anzeige immer noch nichts.

Ich habe jeweils ein device was automatisch angelegt wurde, da habe ich die beiden neuen Attribute eingetragen. Und ein
selbst angelegtes device.

Die Anzeige bewegt sich aber nur bei den selbst angelegten Devices, nicht wenn ich die Rollos über den Handsender bediene.
Noch einen Tipp?
Gruß Pit
Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

RaspiLED

Hi, stell doch mal das
Attribut verbose auf 5 für die Somfy Devices und den Signalduino und zeige uns was im passiert im logfile

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Pitdahl

Hallo Arnd,
Ich habe scheinbar noch ein anderes Problem, irgendwie werden dauernd neue Somy Devices durch autocreate erstellt. Im Eventmonitor kommen aber auch Einträge der schon definierten devices.
Irgend etwas stimmt da nicht ich werde mal alles neu aufsetzen.
Melde mich wieder
Gruß Pit
Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

RaspiLED

Zitat von: Elektrolurch am 29 Juni 2017, 14:55:58

[...]
attr Az_FB_FRoll userattr associated-devices
attr Az_FB_FRoll associated-devices  Az_FRolladen [...]

Ich hänge mal die geänderte SOMFY-Datei an. [...]

Ach ja, damit die Handsender überhaupt erkannt wurden, musste die Abfrage etwas weniger strikt erfolgen. Leider werden über den SignalDuino die gesendeten Signale nicht immer erkannt, so dass er meint, neue devices anlegen zu müssen.
Man sollte
attr autocreate disable 1
setzen, um nicht lauter Leichen oder die Rollos der Nachbarn anzulernen, was ja auch missbraucht werden könnte.

Elektrolurch

Hi,
musst Du Dir überlegen, aber ich glaube das sind die Nebenwirkungen der 99_myUtilsSOMFY.pm ;-(

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Pitdahl

Hallo Arnd, hallo Elektrolurch,
erst mal vielen Dank für die Unterstützung :-)
Zitatmusst Du Dir überlegen, aber ich glaube das sind die Nebenwirkungen der 99_myUtilsSOMFY.pm ;-(
Das kann gut sein, hatte ich vorher nicht. Allerdings habe ich auch das autocreate nicht abgeschaltet=>
ZitatMan sollte
attr autocreate disable 1
setzen, um nicht lauter Leichen oder die Rollos der Nachbarn anzulernen, was ja auch missbraucht werden könnte.
Komischerweise wurden die neuen SOMFY devices eingerichtet als ich die FB gedrückt habe, sollten eigentlich keine
devices von Nachbarn sein. Irgendwie seltsam. Und ich werde autocreate disablen.
Zur Not nehme ich halt wieder die originale .pm das mit den Anzeigen synchen ist nicht Prio 1, wäre natürlich schön.
ZitatHi, stell doch mal das
Attribut verbose auf 5 für die Somfy Devices und den Signalduino und zeige uns was im passiert im logfile
Kann ich verbose bei einzelnen Komponenten einschalten oder nur in global? Habe nur da die Möglichkeit gesehen?

Im Moment bin ich ja auch noch am rumprobieren mit dem dashboard, finde ich auch spannend. Habe einige interessante
Howtos im Wiki gefunden, noch einiges zu lesen ;-)
Werde jetzt erst mal die Funktionen wieder herstellen.
Gruß Pit
Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

RaspiLED

Hi,
In der FHEM Web auf den Signalduino klicken und dann den ATTR Button suchen (rechtes Teilfenster, links Mitte) daneben in der Auswahlbox verbose auswählen, daneben rechts die 5 setzen und auf den ATTR Button drücken ;-)
Analog in den Somfy Devices!
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Elektrolurch

Hallo Pit,

schau Dir doch noch mal Deine Definition an:

Der Fehler ist, dass die FB (Fernbedienung) auf sich selbst verweist.

FB_Roll_Terrasse ist das fhem-device, was ausschliesslich die Funksignale der Hand/Wandsender empfängt. Es brauch auch keine Positionsattribute, noch ein webCmd. Wenn es nämlich senden würde, gehen Deine Hand/Wandsender nicht mehr wegen dem rolling Code.
Dieses device wird beim ersten Drücken automatisch angelegt (Vorsicht, der SignalDuino empfängt die Somfy-Signale nicht einwandfrei, da können also auch falsche device angelegt werden, das sieht man daran, dass das reading parsestate nach mehrmaligem Drücken trotzdem nicht gesetzt wird)

Du musst ein zeites fhem - device haben, was ausschließlich Signale von fhem aus an die Rolladen sendet und das hast Du von Hand anlegen und an die Rolladen anlernen müssen.

Sagen wir mal, dh.h. EG_Rolladen_Terasse

Also:

attr EG_FB_Roll_Terrasse associated-device EG_Rolladen_Terrasse

Fernbedienung wird so mit dem fhem device EG_Rolladen_Terrasse verbunden.

Bei dem von Hand angelegten device sind dann auch die Attribute für die Positionen und das Icon zu definieren.

Elektrolurch
configDB und Windows befreite Zone!

Pitdahl

Hallo Elektrolurch,
Habe es jetzt nach Deinen Angaben aufgeräumt, die angelernten devices mit den neuen Attributen bestückt, Positionsangabe und Webcmd raus, die selbst eingetragenen devices überprüft und autocreate disabled.
Und es funktioniert nun, jedenfalls manchmal, das liegt aber daran, das bei Betätigen der FB scheinbar nicht immer Daten im Signalduino ankommen, das sieht man gut im Eventmonitor.

Endlich Erfolge, vielen Dank für die Unterstützung. Bleibt die Frage warum die Tastendrücke auf der FB nicht immer ankommen und warum teilweise neue devices erzeugt werden bei autocreate enabled.

Gruß Pit
Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

RaspiLED

Hallo Pit,
Hast Du verbose vom Signalduino mal auf 5 gesetzt, und kommen da wirklich keine Daten bei jedem Tastendruck? Oder kommen Daten, aber der Signalduino hört ein wenig falsch bzw. zeitlich verschoben? Was sagen die raw data? Kannst Du hier mal das logfile oder EventMonitor mit log Hacken aktiv posten?
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...