Hallo zusammen,
Ich habe ein Programm geschrieben, dass mir die die Sonnenauf und Sonnenuntergangszeiten in Abhängigkeit des Längen und Breitengrades berechnen soll.
Die Berechnung funktioniert soweit, nur werden die Werte, die ich in den Kanälen eintrage, nicht in meinen Variablen (longitude, latitude) gespeichert.
Desweiteren möchte ich Sunrise & Sunset als Nature anlegen, damit ich diese in anderen Bundles benutzen kann.
Hier meine Programmierung:
> package io.openems.edge.astronomy;
>
>
> @Designate( ocd=Config.class, factory=true)
> @Component(
> name="io.openems.edge.sunrisesunset",
> immediate = true ,
> configurationPolicy = ConfigurationPolicy.REQUIRE)
>
> public class Astronomy extends AbstractOpenemsComponent implements Controller,OpenemsComponent {
>
> private double longitude = 0;
> private double latitude = 0;
>
> public Astronomy() {
> super(
> OpenemsComponent.ChannelId.values()
> );
> }
>
>
>
> @Activate
> void activate(ComponentContext context, Config config) {
> super.activate(context, config.id(), config.alias(), config.enabled()
> );
>
> writeData(config);
> }
>
> private void writeData(Config config) {
>
> this.latitude = config.latitude();
> this.longitude = config.longitude();
>
>
> }
>
>
> @Deactivate
> protected void deactivate() {
> super.deactivate();
> }
>
> public enum ChannelId implements io.openems.edge.common.channel.ChannelId {
> ;
> private final Doc doc;
>
> private ChannelId(Doc doc) {
> this.doc = doc;
> }
>
> public Doc doc() {
> return this.doc;
> }
> }
>
>
> @Activate
> public void run() throws OpenemsNamedException {
>
>
>
> Calendar[] sunriseSunset = io.openems.edge.astronomy.SunriseSunset.getSunriseSunset(Calendar.getInstance(),latitude,longitude);
> System.out.println("Test:"+ latitude);
> System.out.println("Test:"+ longitude);
>
> }
>
> }
Beste Grüße
Dominik