Seite 2 von 2

Re: [V1.5 RC9] Wie kann man eine Custom Logik aus Standard-Bausteinen erstellen?

Verfasst: Mo Nov 04, 2019 7:50 pm
von Robert_Mini
Jetzt verstehe ich‘s auch :angry-banghead: .

So könnte man mit Schwellwerten Boolsche Ausgänge ergänzen, gab dazu ja schon einen Wunsch!

Robert

Re: [V1.5 RC9] Wie kann man eine Custom Logik aus Standard-Bausteinen erstellen?

Verfasst: Mo Nov 04, 2019 7:58 pm
von S. Kolbinger
... doch nicht etwa so? :think:

Code: Alles auswählen

{
  "Level": [
    ["$Sunrise","integer",1568152800],
    ["$Sunset","integer",1568152800],
    ["$Civil_dawn_start","integer",1568152800],
    ["$Civil_dusk_end","integer",1568152800],
    ["$Naut_dawn_start","integer",1568152800],
    ["$Naut_dusk_end","integer",1568152800],
    ["$Astro_dawn_start","integer",1568152800],
    ["$Astro_dusk_end","integer",1568152800],
    ["$Astro_dawn_start_passed","bool",false],
    ["$Naut_dawn_start_passed","bool",false],
    ["$Civil_dawn_start_passed","bool",false],
    ["$Sunrise_passed","bool",false],
    ["$Sunset_passed","bool",false],
    ["$Civil_dusk_end_passed","bool",false],
    ["$Naut_dusk_end_passed","bool",false],
    ["$Astro_dusk_end_passed","bool",false],
    ["$Civil_dawn","bool",false],
    ["$Civil_dusk","bool",false],
    ["$Naut_dawn","bool",false],
    ["$Naut_dusk","bool",false],
    ["$Astro_dawn","bool",false],
    ["$Astro_dusk","bool",false],
    ["$Daylight","bool",false],
    ["$Dark_night","bool",false],
    ["$VAR<Inhibit?>", "bool", false]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
    ["Astro",[0,0],0,0,0,"$Sunrise","$Sunset","$Civil_dawn_start","$Civil_dusk_end","$Naut_dawn_start","$Naut_dusk_end","$Astro_dawn_start","$Astro_dusk_end",0,0],
	["Wakeup","$Astro_dawn_start","$Astro_dawn_start_passed"],
	["Wakeup","$Naut_dawn_start" ,"$Naut_dawn_start_passed"],
	["Wakeup","$Civil_dawn_start","$Civil_dawn_start_passed"],
	["Wakeup","$Sunrise"         ,"$Sunrise_passed"],
	["Wakeup","$Sunset"          ,"$Sunset_passed"],
	["Wakeup","$Civil_dusk_end"  ,"$Civil_dusk_end_passed"],
	["Wakeup","$Naut_dusk_end"   ,"$Naut_dusk_end_passed"],
	["Wakeup","$Astro_dusk_end"  ,"$Astro_dusk_end_passed"],
	["And",["$Astro_dawn_start_passed", "-$Naut_dawn_start_passed" ], "$Astro_dawn"],
	["And",["$Naut_dawn_start_passed" , "-$Civil_dawn_start_passed"], "$Naut_dawn" ],
	["And",["$Civil_dawn_start_passed", "-$Sunrise_passed"         ], "$Civil_dawn"],
	["And",["$Sunrise_passed"         , "-$Sunset_passed"          ], "$Daylight"  ],
	["And",["$Sunset_passed"          , "-$Civil_dusk_end_passed"  ], "$Civil_dusk"],
	["And",["$Civil_dusk_end_passed"  , "-$Naut_dusk_end_passed"   ], "$Naut_dusk" ],
	["And",["$Naut_dusk_end_passed"   , "-$Astro_dusk_end_passed"  ], "$Astro_dusk"],
	["Or" ,["$Astro_dusk_end_passed"  , "-$Astro_dawn_start_passed"], "$Dark_night"]
  ],
  "Input": [
    ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u"]
  ],
  "Output": [
    ["Morgendäm.(astr)","Astronomische Morgendämmerung","$Astro_dawn?","c"],
    ["Morgendäm.(naut)","Nautische Morgendämmerung","$Naut_dawn?","c"],
    ["Morgendäm.(ziv)","Zivile Morgendämmerung","$Civil_dawn?","c"],
    ["Tag","Lichter Tag","$Daylight?","c"],
    ["Abenddäm.(ziv)","Zivile Abenddämmerung","$Civil_dusk?","c"],
    ["Abenddäm.(naut)","Nautische Abenddämmerung","$Naut_dusk?","c"],
    ["Abenddäm.(astr)","Astronomische Abenddämmerung","$Astro_dusk?","c"],
    ["Nacht","Schwarze Nacht","$Dark_night?","c"]
  ]
}
PS: Trigger (Cron) hinzufügen :whistle:

Re: [V1.5 RC9] Wie kann man eine Custom Logik aus Standard-Bausteinen erstellen?

Verfasst: Mo Nov 04, 2019 8:07 pm
von Robert_Mini
Wow! :clap: :clap: :clap:

Ich glaube du hast dich grad gemeldet, wakeup zu beschreiben.
Ist das wie ein comperator für linux Zeit ohne Jahr/Monat/Tag?

Robert

Re: [V1.5 RC9] Wie kann man eine Custom Logik aus Standard-Bausteinen erstellen?

Verfasst: Mo Nov 04, 2019 8:19 pm
von S. Kolbinger
... gibt's doch schon in der Standard-Logik "WakeUp" :shifty:

im Grunde nix anderes als ein Einmal-Wecker (außer man ändert manchmal die Weckzeit ;) )

Code: Alles auswählen

{
      "Level": [
        ["$Date","int",0],
        ["$Alarm","bool",false],
        ["$VAR<Inhibit?>", "bool", false]
      ],
      "Module": [
        ["Break", ["$VAR<Inhibit?>"]  ],
        ["Wakeup","$Date","$Alarm"]
      ],
      "Input": [
        ["Zeit","Unix-Zeit","$Date","c"],
        ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u" ]
      ],
      "Output": [
        ["Alarm","Alarm","$Alarm","a"]
      ]
}

Re: [V1.5 RC9] Wie kann man eine Custom Logik aus Standard-Bausteinen erstellen?

Verfasst: So Jan 03, 2021 9:23 pm
von Piranha
Besteht die Möglichkeit dies auch für die PWM zu bekommen?

Re: [V1.5 RC9] Wie kann man eine Custom Logik aus Standard-Bausteinen erstellen?

Verfasst: So Jan 03, 2021 9:33 pm
von blaubaerli
Hallo @Piranha,

was genau suchst du?

Wenn du eine PWM-Logik zufügen möchtest, dann findest du unten die Option "</> Code kopieren". Klick da mal drauf und füge dann den Inhalt der Zwischenablage in deinen Editor.

Dann hast du das fertige Grundgerüst. Oder benötigst du mehr?

Beste Grüße
Jens

Re: [V1.5 RC9] Wie kann man eine Custom Logik aus Standard-Bausteinen erstellen?

Verfasst: Di Mai 09, 2023 7:04 pm
von Sunshinemaker
S. Kolbinger hat geschrieben: Mo Nov 04, 2019 7:58 pm ... doch nicht etwa so? :think:

Code: Alles auswählen

 {
  "Level": [
    ["$Sunrise","integer",1568152800],
    ["$Sunset","integer",1568152800],
    ["$Civil_dawn_start","integer",1568152800],
    ["$Civil_dusk_end","integer",1568152800],
    ["$Naut_dawn_start","integer",1568152800],
    ["$Naut_dusk_end","integer",1568152800],
    ["$Astro_dawn_start","integer",1568152800],
    ["$Astro_dusk_end","integer",1568152800],
    ["$Astro_dawn_start_passed","bool",false],
    ["$Naut_dawn_start_passed","bool",false],
    ["$Civil_dawn_start_passed","bool",false],
    ["$Sunrise_passed","bool",false],
    ["$Sunset_passed","bool",false],
    ["$Civil_dusk_end_passed","bool",false],
    ["$Naut_dusk_end_passed","bool",false],
    ["$Astro_dusk_end_passed","bool",false],
    ["$Civil_dawn","bool",false],
    ["$Civil_dusk","bool",false],
    ["$Naut_dawn","bool",false],
    ["$Naut_dusk","bool",false],
    ["$Astro_dawn","bool",false],
    ["$Astro_dusk","bool",false],
    ["$Daylight","bool",false],
    ["$Dark_night","bool",false],
    ["$VAR<Inhibit?>", "bool", false]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
    ["Astro",[0,0],0,0,0,"$Sunrise","$Sunset","$Civil_dawn_start","$Civil_dusk_end","$Naut_dawn_start","$Naut_dusk_end","$Astro_dawn_start","$Astro_dusk_end",0,0],
	["Wakeup","$Astro_dawn_start","$Astro_dawn_start_passed"],
	["Wakeup","$Naut_dawn_start" ,"$Naut_dawn_start_passed"],
	["Wakeup","$Civil_dawn_start","$Civil_dawn_start_passed"],
	["Wakeup","$Sunrise"         ,"$Sunrise_passed"],
	["Wakeup","$Sunset"          ,"$Sunset_passed"],
	["Wakeup","$Civil_dusk_end"  ,"$Civil_dusk_end_passed"],
	["Wakeup","$Naut_dusk_end"   ,"$Naut_dusk_end_passed"],
	["Wakeup","$Astro_dusk_end"  ,"$Astro_dusk_end_passed"],
	["And",["$Astro_dawn_start_passed", "-$Naut_dawn_start_passed" ], "$Astro_dawn"],
	["And",["$Naut_dawn_start_passed" , "-$Civil_dawn_start_passed"], "$Naut_dawn" ],
	["And",["$Civil_dawn_start_passed", "-$Sunrise_passed"         ], "$Civil_dawn"],
	["And",["$Sunrise_passed"         , "-$Sunset_passed"          ], "$Daylight"  ],
	["And",["$Sunset_passed"          , "-$Civil_dusk_end_passed"  ], "$Civil_dusk"],
	["And",["$Civil_dusk_end_passed"  , "-$Naut_dusk_end_passed"   ], "$Naut_dusk" ],
	["And",["$Naut_dusk_end_passed"   , "-$Astro_dusk_end_passed"  ], "$Astro_dusk"],
	["Or" ,["$Astro_dusk_end_passed"  , "-$Astro_dawn_start_passed"], "$Dark_night"]
  ],
  "Input": [
    ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u"]
  ],
  "Output": [
    ["Morgendäm.(astr)","Astronomische Morgendämmerung","$Astro_dawn?","c"],
    ["Morgendäm.(naut)","Nautische Morgendämmerung","$Naut_dawn?","c"],
    ["Morgendäm.(ziv)","Zivile Morgendämmerung","$Civil_dawn?","c"],
    ["Tag","Lichter Tag","$Daylight?","c"],
    ["Abenddäm.(ziv)","Zivile Abenddämmerung","$Civil_dusk?","c"],
    ["Abenddäm.(naut)","Nautische Abenddämmerung","$Naut_dusk?","c"],
    ["Abenddäm.(astr)","Astronomische Abenddämmerung","$Astro_dusk?","c"],
    ["Nacht","Schwarze Nacht","$Dark_night?","c"]
  ]
}
PS: Trigger (Cron) hinzufügen :whistle:

Moin,
@StefanW : Da ich nicht weiß ob der gute Mann noch bei euch ist bzw. hier Aktiv ist, schreib ich dich mal mit hier rein. Ist ja für dich evtl. auch interessant da diese Logik bei euch in der Wiki verlinkt ist.

Ich bin über das Wiki auf den Code aufmerksam geworden. Allerdings ist bei mit Gleichzeit Tag und Nacht, zumindest laut dem Code.
Bildschirmfoto 2023-05-09 um 18.01.25.png
Ich hab den Code mal so angepasst das nicht die Geodaten vom TWS genutzt werden sondern manuell eingegeben werden können. Der Fehler tritt nur ab dem 52,3 Breitengrad auf. Bei 52,2 ist noch alles gut. Der Längengrad spielt dabei anscheinend auch eine Rolle Zumindest bei meinen Rudimentären Tests. Ich hab mal aus Spaß 25° Länge eingegeben, dort ist zumindest Tag und Nacht wieder richtig. Bei mir
Des weiteren ist mir aufgefallen dass seit zwei tagen keine Astronomische Abenddämmerung mehr in der Logik gibt. Leider lief das ganze nur im Dok-Mode und durch meine Test ist der Ringspeicher von der Logik weg. Das ist auch der Grund wieso mir das ganze überhaupt erst aufgefallen ist und ich ein wenig rumprobiert habe.

Ich jetzt nochmal zwei identische Logiken erstellt die sich nur um 0,1° im Breitengrad unterschieden und werde das mal ein paar tage laufen lassen und dann nochmal berichten.

Vielleicht kann ja mal jemand gucken ob ob sich da bei jemand Reproduzieren läßt. Zumindest bei mir ist es immer der selbe Fehler. Auch wenn ich den Code von hier neu kopiere und NICHTS ändere. Was vermutlich an der im TWS gespeicherten Position liegt.

Meine genaue Position kann ich ggf. gerne per Privater Nachricht mitteilen.

Und das ist der Angepasst Code so wie er bei mir den Fehler Produziert, mit der entsprechenden Position.

Code: Alles auswählen

{
  "Level": [
    ["$Sunrise","integer",1568152800],
    ["$Sunset","integer",1568152800],
    ["$Civil_dawn_start","integer",1568152800],
    ["$Civil_dusk_end","integer",1568152800],
    ["$Naut_dawn_start","integer",1568152800],
    ["$Naut_dusk_end","integer",1568152800],
    ["$Astro_dawn_start","integer",1568152800],
    ["$Astro_dusk_end","integer",1568152800],
    ["$Astro_dawn_start_passed","bool",false],
    ["$Naut_dawn_start_passed","bool",false],
    ["$Civil_dawn_start_passed","bool",false],
    ["$Sunrise_passed","bool",false],
    ["$Sunset_passed","bool",false],
    ["$Civil_dusk_end_passed","bool",false],
    ["$Naut_dusk_end_passed","bool",false],
    ["$Astro_dusk_end_passed","bool",false],
    ["$Civil_dawn","bool",false],
    ["$Civil_dusk","bool",false],
    ["$Naut_dawn","bool",false],
    ["$Naut_dusk","bool",false],
    ["$Astro_dawn","bool",false],
    ["$Astro_dusk","bool",false],
    ["$Daylight","bool",false],
    ["$Dark_night","bool",false],
    ["$VAR<Inhibit?>", "bool", false],
    ["$Latitude", "float",52.3],
    ["$Longitude", "float",8.6]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
    ["Astro",["$Latitude","$Longitude"],0,0,0,"$Sunrise","$Sunset","$Civil_dawn_start","$Civil_dusk_end","$Naut_dawn_start","$Naut_dusk_end","$Astro_dawn_start","$Astro_dusk_end",0,0],
	["Wakeup","$Astro_dawn_start","$Astro_dawn_start_passed"],
	["Wakeup","$Naut_dawn_start" ,"$Naut_dawn_start_passed"],
	["Wakeup","$Civil_dawn_start","$Civil_dawn_start_passed"],
	["Wakeup","$Sunrise"         ,"$Sunrise_passed"],
	["Wakeup","$Sunset"          ,"$Sunset_passed"],
	["Wakeup","$Civil_dusk_end"  ,"$Civil_dusk_end_passed"],
	["Wakeup","$Naut_dusk_end"   ,"$Naut_dusk_end_passed"],
	["Wakeup","$Astro_dusk_end"  ,"$Astro_dusk_end_passed"],
	["And",["$Astro_dawn_start_passed", "-$Naut_dawn_start_passed" ], "$Astro_dawn"],
	["And",["$Naut_dawn_start_passed" , "-$Civil_dawn_start_passed"], "$Naut_dawn" ],
	["And",["$Civil_dawn_start_passed", "-$Sunrise_passed"         ], "$Civil_dawn"],
	["And",["$Sunrise_passed"         , "-$Sunset_passed"          ], "$Daylight"  ],
	["And",["$Sunset_passed"          , "-$Civil_dusk_end_passed"  ], "$Civil_dusk"],
	["And",["$Civil_dusk_end_passed"  , "-$Naut_dusk_end_passed"   ], "$Naut_dusk" ],
	["And",["$Naut_dusk_end_passed"   , "-$Astro_dusk_end_passed"  ], "$Astro_dusk"],
	["Or" ,["$Astro_dusk_end_passed"  , "-$Astro_dawn_start_passed"], "$Dark_night"]
  ],
  "Input": [
    ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u"]
  ],
  "Output": [
    ["Morgendäm.(astr)","Astronomische Morgendämmerung","$Astro_dawn?","c"],
    ["Morgendäm.(naut)","Nautische Morgendämmerung","$Naut_dawn?","c"],
    ["Morgendäm.(ziv)","Zivile Morgendämmerung","$Civil_dawn?","c"],
    ["Tag","Lichter Tag","$Daylight?","c"],
    ["Abenddäm.(ziv)","Zivile Abenddämmerung","$Civil_dusk?","c"],
    ["Abenddäm.(naut)","Nautische Abenddämmerung","$Naut_dusk?","c"],
    ["Abenddäm.(astr)","Astronomische Abenddämmerung","$Astro_dusk?","c"],
    ["Nacht","Schwarze Nacht","$Dark_night?","c"]
  ]
}