NEWS
Hilfe bei Scripterstellung!
-
Nach langem try-and-error habe ich es endlich geschafft von meinem Denon die Zustände auslesen zu können. Jetzt möcht ich diese Zustände weiterverarbeiten.
Den Zustand Power ON / OFF möchte ich in Homematic als Systemvariable haben.
Den Zustand des Input Select Input möchte ich ebenfalls in der Homematic als Systemvariable sehen.
Als Erweiterung soll bei dem Input MPLAY(7) die Lautstärke automatisch auf 50 gesetzte werden und ein Signal über 433Mhz für die Leinwand den Befehl ab senden.
Beim umswitchen auf einen anderen Kanal soll die vorherige Lautstärke wieder eingestellt werden.
Die Leinwand soll via 433Mhz wieder hochfahren wenn der AVR ausgeschaltet oder ein anderer Kanal gewählt wird.
Wie stelle ich das mit nicht vorhandenen Programmierkenntnissen an?
-
Guten Abend,
da helfen nur 2 Dinge, Blockly oder Scene Adapter.
Gruß Marco
-
und ein Signal über 433Mhz für die Leinwand
Die Leinwand soll via 433Mhz wieder hochfahren ` und woher kommen diese 433MHz Signale?
und zeige bitte zudem einmal einen ScreenShot mit allen Denon Datenpunkten
-
und ein Signal über 433Mhz für die Leinwand
Die Leinwand soll via 433Mhz wieder hochfahren ` und woher kommen diese 433MHz Signale?
und zeige bitte zudem einmal einen ScreenShot mit allen Denon Datenpunkten `
Hier sieht man die benötigten Datenpunkte:
-
-
Hier sieht man die benötigten Datenpunkte: ` mich interessieren aber eher die Datenpunkte vom user djtale2003 8-)
[EDIT] einen "level.volume" Datenpunkt konnte ich zudem noch nicht ausmachen
[EDIT 2]Ich habe aber gerade u.a. "Master Volume" erkannt
-
Hier sieht man die benötigten Datenpunkte: ` mich interessieren aber eher die Datenpunkte vom user djtale2003 8-)
[EDIT] einen "level.volume" Datenpunkt konnte ich zudem noch nicht ausmachen
[EDIT 2]Ich habe aber gerade u.a. "Master Volume" erkannt `
Ich war davon ausgegangen, dass es bei ihm so aussieht wie bei mir.Genau, Lautstärke geht über Master_Volume.
-
Ich war davon ausgegangen, dass es bei ihm so aussieht wie bei mir.
Genau, Lautstärke geht über Master_Volume. ` das kann ich mir auch durchaus vorstellen, häufig zeigen Screenshots dennoch den einen oder anderen Hinweis über die Umgebung, Namensnennung usw. beim User; oder auch ob der Adapter oder das Gerät sauber konfiguriert ist.
Ich selbst ändere z.B. mitunter nach Bedarf die Rollen einiger Datenpunkte.
Dennoch Danke
-
Hier sind die zwei Variablen, die ich in Homematic integrieren möchte.
In Homematic ist eine Systemvariable hinterlegt. wenn ic dort die Role des Denonwertes eintrage, passiert nichts. Mit der 16 Kanal Zustandsanzeige habe ich es auch schon versucht. Da wird mit dann ein parser-fehler angezeigt.
3384_iobroker.admin1.png
3384_iobroker.admin2.png
3384_iobroker.admin3.png -
Hier sieht man die benötigten Datenpunkte `
Da fehlen aber noch die auch noch gewünschten
@BBTown:und woher kommen diese 433MHz Signale? `
Datenpunkte.Gruß
Rainer `
Ich wollte es nach diesem Tutorial versuchen:
https://tutorials-raspberrypi.de/raspbe … z-steuern/
Das ist aber zweitrangig. Wichtig ist erstmal, dass die Systemvariablen auf Homematic dargestellt werden….
-
Den Zustand Power ON / OFF möchte ich in Homematic als Systemvariable haben.
Den Zustand des Input Select Input möchte ich ebenfalls in der Homematic als Systemvariable sehen. `
Für Power ON/OFF muss eine SV vom Typ Logikwert und für Input Select eine SV vom Typ Werteliste angelegt werden. Bitte eindeutige Namen vergeben (z.B. "SV-Denon-Power").Sollen diese SV nur die Zustände anzeigen oder soll darüber auch bedient werden ?
-
Für Power ON/OFF muss eine SV vom Typ Logikwert und für Input Select eine SV vom Typ Werteliste angelegt werden. Bitte eindeutige Namen vergeben (z.B. "SV-Denon-Power").
Sollen diese SV nur die Zustände anzeigen oder soll darüber auch bedient werden ? `
Das habe ich bereits gemacht. Die verschiedenen Werte sind in Homematic bereits in Programmen verknüpft.
3384_homematic_webui4.png -
Du solltest die Namen, die vom HM-Rega-Adapter erzeugt werden, nicht ändern. Dann kannst du so die SV setzen:
var idSVPower = getIdByName('Denon Power'); var idSVInput = getIdByName('Denon Input'); var idPower = 'javascript.0.Denon.Zone_Main.Power'; var idSelect = 'javascript.0.Denon.Zone_Main.Select_Input'; var idLeinwand = '...'; var idLevel = '...'; // ID für Lautstärke-Datenpunkt var power = getState(idPower).val; var select = getState(idSelect).val; var level = getState(idLevel).val; function Leinwand() { if(select === 7 && power) { level = getState(idLevel).val; setState(idLevel, 50); setState(idLeinwand, true); // Leinwand ab } else { setState(idLevel, level); // alte Lautstärke setState(idLeinwand, false); // Leinwand auf } } // bei Script start in SV schreiben setState(idSVPower, power); setState(idSVInput, select); Leinwand(); // bei Änderung in SV schreiben on(idPower, function(dp) { power = dp.state.val; setState(idSVPower, power); Leinwand(); }); on(idSelect, function(dp) { select = dp.state.val; setState(idSVInput, select); Leinwand(); });
-
Das Script hat leider nicht funktioniert. Der Wert der Lautstärke hat sich zwar in io.broker geändert, aber nicht am Gerät selbst. Das script hat mich aber auf den richtigen Pfad gebracht. Ich habe nun den Inputstatus und den Powerstatus von dem Denon mit der Systemvariable in Blockly mit der Funktion "binde" verknüpft. Nun werde die Werte als Systemvariable in Homematic angezeigt. Perfekt!! Vielen Dank für den Schubs in die richtige Richtung. Jetzt muß ich das nur noch mit der Lautstärke hinkriegen. Wie muß das Script geändert werden? Oder soll besser mt Blockly arbeiten? Da habe ich auch keinen Plan von…
-
Der Wert der Lautstärke hat sich zwar in io.broker geändert, aber nicht am Gerät selbst. `
Dann hast Du sicherlich die falsche Datenpunkt-ID verwendet. Ob es mit dem Datenpunkt funktioniert, kannst Du im Reiter "Objekte" testen, indem Du dort den Wert veränderst. Beim richtigen Datenpunkt sollte sich dann auch die Lautstärke am Gerät ändern. -
Ich habe den Datenpunkt Master Volume gewählt. Welchen soll ich sonst wählen? Einen anderen finde ich nicht.
Ich habe mal den Wert von dem Input in iobroker geändert. Auch darauf reagiert der Denon nicht.
Gibt es hier vielleicht ein grundlegendes Problem?
In der Zeile Command to AVR steht kein Wert, muß ich hier erst die Fernsteuerung via iobroker "aktivieren"?
Offensichtlich nicht. Ich kann nur den Tuner fernsteuern. Alle anderen ID von Denon reagieren nicht auf eine Änderung des Wertes…
3384_iobroker.admin1.png -
Alle anderen ID von Denon reagieren nicht auf eine Änderung des Wertes… ` hast du denn in diesem Feld (siehe Pfreil) einmal einen anderen Wert eingetragen und reagiert dein Denon hierauf?
Wenn nicht, dann stimmt ja etwas mit der Verbindung nicht. Und zudem wird es dann erst recht nicht über ein Script funktionieren.
Zeige doch mal einen Screenshot der Eigenschaften von "Master_Volume" (allgemein, native, raw)
Was mir auch auffällt ist eine Unstimmigkeit in der Darstellung vom Datenpunkt "Master_Volume_DOWN".
Als Rolle steht dor "button" aber in den Werten ist ein "false" zu sehen … das dürfte gar nicth sein.
Am besten Du zeigst ebenfalls einmal einen Screenshot der Eigenschaften von "Master_Volume_DOWN" (allgemein, native, raw)
1917_denon_mastervolume.png -
Ich vermute mal, dass Du das Skript von @Lucky verwendest. Dann wird nur an den Denon gesendet, wenn ack=false ist (Werte werden im Reiter "Objekte" rot dargestellt). Wenn getestet werden soll, ob Änderungen in ioBroker beim Denon ankommen, muss bei Änderung des Wertes ack auf false gesetzt werden. Das geht einfacher im Reiter "Zustände": Filtern der ID "Denon.Zone_Main.", den Wert ändern und den Haken bei "Bestätigt" entfernen.
-
hast du denn in diesem Feld (siehe Pfreil) einmal einen anderen Wert eingetragen und reagiert dein Denon hierauf? ` Genau dort habe ich die Werte geändert und mit dem Haken bestätigt. Auf Änderungen im Reiter Tuner_Control hat der Denon reagiert, auf Änderungen im Ordner Zone_Main nicht
Was mir auch auffällt ist eine Unstimmigkeit in der Darstellung vom Datenpunkt "Master_Volume_DOWN".
Als Rolle steht dor "button" aber in den Werten ist ein "false" zu sehen … das dürfte gar nicth sein.
Am besten Du zeigst ebenfalls einmal einen Screenshot der Eigenschaften von "Master_Volume_DOWN" (allgemein, native, raw) ` Master_Volume_UP ist auch button….
Ich vermute mal, dass Du das Skript von @Lucky verwendest. Dann wird nur an den Denon gesendet, wenn ack=false ist (Werte werden im Reiter "Objekte" rot dargestellt). Wenn getestet werden soll, ob Änderungen in ioBroker beim Denon ankommen, muss bei Änderung des Wertes ack auf false gesetzt werden. Das geht einfacher im Reiter "Zustände": Filtern der ID "Denon.Zone_Main.", den Wert ändern und den Haken bei "Bestätigt" entfernen. ` Genau, dass ist das Script von Lucky. Ich konnte aber keinen Reiter Zustände bei mir finden, nur Objekte. Was in der Zone Main steht, ist auf den letzten Screenshots zu sehen. ack kann ich auch nirgends finden.
3384_iobroker.admin.png
3384_iobroker.admin1.png
3384_iobroker.admin2.png
3384_iobroker.admin3.png
3384_iobroker.admin4.png
3384_iobroker.admin5.png
3384_iobroker.admin6.png -
Ich konnte aber keinen Reiter Zustände bei mir finden `
Dann musst Du ihn http://www.iobroker.net/docu/?page_id=5473&lang=de#Reiter (über das Bleistift-Icon rechts oben).