danke für dein Statement aus Entwicklersicht.
Alles verständlich, die Schwierigkeit bezüglich der FW für den nanoCUL liegt für mich darin, dass alles oder fast alles mit Bezug auf FHEM geschrieben wird und wer das nicht kennt, weiß nie genau wo er eigentlich gerade steht.
Also deine für die Entwicklung genutzte culfw müsste doch alles können, was dein Modul so macht. Ich glaube für den Einstieg sollte es dann auch reichen.?
Zu meinen anderen Problemen, ich habe mal die Lage des nanoCUL mit der λ/2 Antenne geändert und nun funktioniert es viel besser, inclusive der Schalter und FB. Sogar das schalten per Webfront von V3.4 FHZ1300 wird nun richtig dargestellt.
Nochmals danke für deine Leistung.
Eine Frage hätte ich noch, wo finde ich eine Anleitung um die FHZ1300 mit den heutigen Methoden in das LAN einzubinden? Ich glaube hier bin ich etwas OT
Gibt es bestimmt auch von anderen Herstellern. Ein Stück Software muss dann noch auf deinem Server installiert werden, um auf das USB Gerät zugreifen zu können.
Ich habe nicht alle Möglichkeiten der CULFW im Modul umgesetzt. Aber alles was mein Modul kann, sollte theoretisch mit mindestens der genannten CULFW-Version funktionieren.
Du kannst auch den Software USBServer „Virtualhere“ verwenden. Damit habe ich auch meine WS300 angebunden.
Habe mir das „Virtualhere“ angeschaut und ist ja eine wirklich tolle Lsg. die aber leider nicht passt.
Ich kann die FHZ1300 z.Z. auf eine Fritzbox USB legen, aber wie bekomme ich dort den Server installiert?
Am Raspi installieren geht nicht, da er nicht in der Nähe der FS20 Geräte ist.
Ich würde es gern mit der USR-TCP232-T2 lösen geht das überhaupt und wenn ja, aber wie??
Auf der Fritzbox geht Virtualhere nicht. Möglicherweise hilft hier der Fritz Fernanschluss. Ich bin mir aber nicht sicher, ob der auch serielle USB-Geräte kann. Zudem gibt es den Client auch nur für Windows.
Alternativ ist wäre eigener Rasbpi+Virtualhere neben der Fritzbox in Summe oft günstiger als ein „echter“ Device Server. Gebraucht bekommt man einen älteren Rasbpi 1b fast geschenkt. Es werden so wenig Ressourcen gebraucht, das man zur Erhöhung der Stabilität /tmp und /vatr/log auch noch auf tmpfs (RAM) umleiten kein.
nachdem nun Weihnachten näher kommt wollte ich eine FS20 Steckdose mit einem Schwibbogen per script schalten.
Die Zeilen lauten:
" FS20_SwitchMode($IPS_TARGET, true); //Gerät einschalten
bzw.:
FS20_SwitchDuration($IPS_TARGET, true, 500);"
und die Antwort ist:
" Warning: Instance does not implement this function in /var/lib/symcon/scripts/48074.ips.php on line 26
Warning: Instance does not implement this function in /var/lib/symcon/scripts/48074.ips.php on line 27"
Mache ich einen Fehler und kann ich das umgehen oder geht das mit meinem CUL nicht.
Ich hatte verstanden das dimming und switching geht, aber wie geht es mit einem script?
„Fatal error: Uncaught Error: Call to undefined function SWD_SwitchMode() in /var/lib/symcon/scripts/48074.ips.php:27
Stack trace: #0 {main}
thrown in /var/lib/symcon/scripts/48074.ips.php on line 27“
Schwer zu sagen, gehen wir doch mal systematisch ran.
Meine Module müssen geladen sein. Wenn man im Script-Editor nach „SWD_“ eingibt (in der Classic dann CTRL-LEER drückt), sollten alle Befehle mit SWD_ auftauchen. Wenn nicht, IPS neu starten und im IPS Log suchen, warum das Modul nicht geladen wurde.
Es muss einen Splitter für den CUL geben und eine verbundene SwichDevice-Instance(deswegen SWD) für den Aktor. Im Konfigurationsdialog gibt es im Testcenter einen Button, der den Aktor schaltet. Das sollte funktionieren.
Aus der module.php kann ich leider nicht erkennen wie ich die „duration: Integer“ ich habe 8 sec eingesetzt, anders schreiben sollte. Alle Versuche waren erfolglos.
Auszug aus README:
Switch Device
Generic Device module to present weather data
Prefix: SWD_
Public Functions:
forward data to splitter only, real actor control will need a Splitter with matching capabilities like AVMAHA or CUL
SWD_SetSwitchMode($id,$state): set the switch to the desired state
SWD_SetIntensity($id,$percent): Dim to the given Level
[SIZE=3]* SWD_SetDuration($id,$seconds,$action=null): (FS20 via CUL only) Switch to the given or …… expires
SWD_DimUp($id): Dim one Level(Step) Up
SWD_DimDown($id): Dim one Level(Step) down
[/SIZE]
Übrigens, wenn der SW aus ist und ich im Script „$action“ auf „null“ oder „0“ oder „Off“ setze passiert nichts, setze ich den Datenpunkt auf „On“ erfolgt die Schaltung auf „On“ für 8 sec.
Gibt es noch irgendwo eine andere Liste der Befehle die ich nicht gefunden habe?
eigentlich sollte der Text hinter Deinen Punkten genau das beschreiben:
SWD_SetDuration($id,$seconds,$action=null): (FS20 via CUL only) Switch to the given or opposite current state and reverse after time expires
Er schaut also wenn $action nicht gesetzt ist nach, ob gerade die Statusvariable „On“ oder „Off“ ist und setzt dann den Parameter $action entgegengesetzt. So der Plan.
z.Z.:
Wenn also der Switch „Aus“ ist und „SWD_SetDuration($IPS_TARGET, 8, $action=null )“ eingesetzt wird passiert nichts.
Ebenso wenn für $action=null: nur „null“ oder nur „Off“ eingesetzt ist.
Der Schaltvorgang auf „An“ erfolgt nur bei:
SWD_SetDuration($IPS_TARGET, 8, „on“)
und mit Verzögerung von 8 sec dann wieder „Aus“.
Wenn aber der Switch „An“ ist und „SWD_SetDuration($IPS_TARGET, 8, „Off“ )“ eingesetzt wird dann schaltet der Schalter sofort ohne Verzögerung aus, genau wie bei "SWD_SetSwitchMode($IPS_TARGET, „Off“)