CreateMedia per Message-Sink

Hallo Zusammen,

ich programmiere gerade an einem Klingelmodul und habe ein Problem mit CreateMedia:
Bei Klingelbetätigung (erkannt durch die MessageSink) wird das Bild der Webcam per CreateMedia kopiert und soll per Push-Message ans Handy geleitet werden.

Da beim Push-Befehl allerdings das Medien-Objekt anscheinend physikalisch noch nicht existent ist, bekomme ich folgende Fehlermeldung:

26.10.2018 17:49:07*| KernelMT*| InstanzManager: Fehler bei Instanz #58277 , Meldung VM_UPDATE: <br />
<b>Warning</b>: TargetID is too deep inside the mobile context in <b>/var/lib/symcon/modules/Astyc84Misc/DoorBell/module.php</b> on line <b>121</b><br />

Kann mir jemand helfen ?:banghead:

Hier die Datei

Gruss
Astyc

Ich hatte vorhin schon mal reingeschaut.
Du prüfst z.b. nicht ob die Propertys überhaupt gesetzt sind (nicht 0).
Registermessage auf 0 ist auch doof.
Und TargetID ist wenn numPic auf 0 ist gar nicht gesetzt…
Du solltest also erst die Basis fehlerfrei umsetzen.
Der Fehler bedeutet aber eher das das Ziel nicht im Zugriff der App ist.
Michael

Ok, um die Basis wollte ich mich noch kümmern :smiley:
Allerdings hat das nichts mit dem Fehler zu tun, denn das Image ist in der App einwandfrei verfügbar und anzeigbar.

Wenn ich den Befehlt vom Formular (Test) aus starte, funktioniert es. Es muss was mit der MessageSink zu tun haben.

Gruss
Astyc

Sicher?
Du machst etwas was nicht erlaubt ist.
Du erzeugst unterhalb deiner Instanz eine Kategorie.
Das ist weder im WebFront noch in der App darstellbar.
Und deswegen ist TargetID nicht erreichbar.

Warum überhaupt so ein Modul?
Ich hätte mir einfach das Bildarchiv installiert:
SymconMisc/BildArchiv at master · symcon/SymconMisc · GitHub
Und den Push per kleinem Script.
Der Rest wie Tag/Nacht und ggfls noch ein Script starten ist da auch nicht kompliziert.
Michael

Entkoppel die MessageSink am besten über einen „kurzen“ Timer. Solange du die MessageSink blockierst, kann es gut sein, dass intern Dinge nicht abgearbeitet wurden, die du später benötigst.

paresy

Schau doch mal in das Doorbird Modul rein, da wird auch ein Bild abgelegt sobald es klingelt und bei Bedarf auch eine Email verschickt. Kannst Du praktisch so „übernehmen“ bzw. anpassen.

@paresy
Schade, ich hätte es lieber mit der MessageSink gemacht, aber Danke es funktioniert per Event!

Er hat nichts von Event (Ereignis) geschrieben :banghead:
Einfach in der MessageSink einen kurzen Timer (SetTimerIntervall) aktivieren.
Der Timer muss aber im Create einmalig registriert werden.
Michael