Rolladenaktor mit Script ansteuern
Moderator: Co-Administratoren
-
- Beiträge: 66
- Registriert: 26.12.2018, 20:32
Re: Rolladenaktor mit Script ansteuern
Hi, sorry
also mit dem script sollen meine Solarpanels an meinem Balkon mit Hilfe Linearmotoren bewegt werden.
Das script wird alle 10-15 min ausgeführt und bewegt sich dann immer 2% Schritte (deswegen mal 1.3).
Danke für den Tipp, daran wird es liegen, ich muss den Wert der in var x drin steht noch durch 100 teilen
also mit dem script sollen meine Solarpanels an meinem Balkon mit Hilfe Linearmotoren bewegt werden.
Das script wird alle 10-15 min ausgeführt und bewegt sich dann immer 2% Schritte (deswegen mal 1.3).
Danke für den Tipp, daran wird es liegen, ich muss den Wert der in var x drin steht noch durch 100 teilen
-
- Beiträge: 66
- Registriert: 26.12.2018, 20:32
Re: Rolladenaktor mit Script ansteuern
Muss in das script noch ein Befehle beigefügt werden, dass es ausgeführt wird?
Denn es wird nur in der Konsole mit "Ausführen" ausgeführt.
Führe ich das Programm unter "Status und Bedienung/Programme" aus geht das nicht.
Und automatisch alle 10min wird es auch nicht ausgeführt.
Denn es wird nur in der Konsole mit "Ausführen" ausgeführt.
Führe ich das Programm unter "Status und Bedienung/Programme" aus geht das nicht.
Und automatisch alle 10min wird es auch nicht ausgeführt.
var x = dom.GetObject("sonne_elevation").Value() * (1.3 / 100); !Umwandlung des Sonnenstandwinkel in Prozent und in 2% Schritte begrenzt
var y = x.Round(2).ToString(2); !gerundet und auf eine Stelle nach dem Komma gekürzt
WriteLine(x);
WriteLine(y);
dom.GetObject("HM-LC-Bl1-FM papa5932af:1").DPByHssDP("LEVEL").State(y); !0-100% Wert übergabe an Linearmotor
-
- Beiträge: 5492
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 750 Mal
Re: Rolladenaktor mit Script ansteuern
Glaube kaum, dass der Aktor mit einem string was anfangen kann, der braucht real-Zahlen!
-
- Beiträge: 66
- Registriert: 26.12.2018, 20:32
Re: Rolladenaktor mit Script ansteuern
Aber warum funktioniert es wenn ich das Script in der Konsole ausführe? Ich sehe ja das der Linearmotor vom Aktor angesteuert wird.
Das Programm mit dem Script wird schon ausgeführt aber der Autor bekommt keinen wert übermittelt.
wie kommt du darauf das es ein String ist? der Befehl ToString() ist keine Umwandlung zu einem String.
Das Programm mit dem Script wird schon ausgeführt aber der Autor bekommt keinen wert übermittelt.
wie kommt du darauf das es ein String ist? der Befehl ToString() ist keine Umwandlung zu einem String.
-
- Beiträge: 9729
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 705 Mal
- Danksagung erhalten: 1643 Mal
Re: Rolladenaktor mit Script ansteuern
Und was soll "to string" sonst bedeuten? Vielleicht mal in der Doku nachlesen? Dich rettet da nur die automatische Typ Umwandlung. Vielleicht.heidepower hat geschrieben: ↑12.02.2023, 11:36der Befehl ToString() ist keine Umwandlung zu einem String
Irgendwie sehe ich den Screenshot nichtheidepower hat geschrieben: ↑12.02.2023, 11:36Das Programm mit dem Script wird schon ausgeführt aber der Autor bekommt keinen wert übermittelt.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- Baxxy
- Beiträge: 10932
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 617 Mal
- Danksagung erhalten: 2253 Mal
Re: Rolladenaktor mit Script ansteuern
Da sagt die Script Doku aber was anderes.heidepower hat geschrieben: ↑12.02.2023, 11:36wie kommt du darauf das es ein String ist? der Befehl ToString() ist keine Umwandlung zu einem String.
Egal, .ToString() kannst du eh weglassen da es den Aktor nicht juckt wie viele Nachkommastellen dranhängen.
(Er verdaut eh nur 2 die du ja mit .Round(2) schon korrekt hast)
Wenn das so im Script Testen läuft dann auch innerhalb eines Programmes.
Vorausgesetzt das der Dann-Pfad mit dem Script auch ausgeführt wird.
Ergo: Screenshot vom Programm zeigen
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 564
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 28 Mal
- Danksagung erhalten: 130 Mal
Re: Rolladenaktor mit Script ansteuern
dann lass dir auch mal den Variablentyp anzeigen:
Code: Alles auswählen
var x = dom.GetObject("sonne_elevation").Value() * (1.3 / 100); !Umwandlung des Sonnenstandwinkel in Prozent und in 2% Schritte begrenzt
var y = x.Round(2).ToString(2); !gerundet und auf eine Stelle nach dem Komma gekürzt
WriteLine(x);
WriteLine(y);
WriteLine(y.Type());
Gruß
Harry
Harry
-
- Beiträge: 5492
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 750 Mal
Re: Rolladenaktor mit Script ansteuern
Ja, nee, is klar.heidepower hat geschrieben: ↑12.02.2023, 11:36der Befehl ToString() ist keine Umwandlung zu einem String.
Vermutet ja sicher auch keiner, dass "ToString()" was mit Umwandlung in einen String zu tun haben könnte, absurd.
Und warum Dokumentation lesen, wenn man es (besser) weiß?
-
- Beiträge: 66
- Registriert: 26.12.2018, 20:32
Re: Rolladenaktor mit Script ansteuern
Hey Zusammen,
Hab ein Problem mit meinem Script. Der Rolladenaktor soll je nach SonnenWinkel in 10% Schritten fahren. Leider fährt er nicht wie gedacht bzw. gewollt.
z.b. Der SonnenWinkel ist 16° somit sollte er doch den Rolladenaktor 30% übergeben!? Aber er übergibt ihm 60%.
Hab ich ein Denkfehler oder haut das mit den logischen Verknüpfungen so nicht hin?
Hab ein Problem mit meinem Script. Der Rolladenaktor soll je nach SonnenWinkel in 10% Schritten fahren. Leider fährt er nicht wie gedacht bzw. gewollt.
z.b. Der SonnenWinkel ist 16° somit sollte er doch den Rolladenaktor 30% übergeben!? Aber er übergibt ihm 60%.
Hab ich ein Denkfehler oder haut das mit den logischen Verknüpfungen so nicht hin?
Code: Alles auswählen
var AlteVar=dom.GetObject("Sonne Elevation");
var NeueVar=dom.GetObject("SonnenWinkel");
var AlterWert=AlteVar.Value();
NeueVar.State(AlterWert);
WriteLine(NeueVar.Value());
if ( (SonnenWinkel >=2) && (SonnenWinkel <7) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.00); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=7) && (SonnenWinkel <11) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.10); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=11) && (SonnenWinkel <15) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.20); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=15) && (SonnenWinkel <18) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.30); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=18) && (SonnenWinkel <22) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.40); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=22) && (SonnenWinkel <26) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.50); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=26) && (SonnenWinkel <29) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.60); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=29) && (SonnenWinkel <32) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.70); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=32) && (SonnenWinkel <35) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.80); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( (SonnenWinkel >=35) && (SonnenWinkel <39) )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(0.90); !übergabe des Prozentwertes an den Rolladenaktor
}
if ( SonnenWinkel >=39 )
{
dom.GetObject("PV-Anlage Balkon Antrieb:4").DPByHssDP("LEVEL").State(1.00); !übergabe des Prozentwertes an den Rolladenaktor
}
- Baxxy
- Beiträge: 10932
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 617 Mal
- Danksagung erhalten: 2253 Mal
Re: Rolladenaktor mit Script ansteuern
Ist das das gesamte Script?
Die Scriptvariable "SonnenWinkel" ist nirgends deklariert.
Edit:
Was ich nicht verstehe...
Wieso liest du den Wert aus einer SysVar aus und schreibst ihn dann in eine andere SysVar?
Die Scriptvariable "SonnenWinkel" ist nirgends deklariert.
Edit:
Was ich nicht verstehe...
Wieso liest du den Wert aus einer SysVar aus und schreibst ihn dann in eine andere SysVar?
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen