Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Aufheiz-Zeiterfassung und Voraussteuerung für Heizungen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Aufheiz-Zeiterfassung und Voraussteuerung für Heizungen

    This topic has been deleted. Only users with topic management privileges can see it.
    • apollon77
      apollon77 last edited by

      Also mit "debug=true" muss nach dem Skriptstart pro Raum eine Ausgabe kommen.

      Aktualisiere ggf nochmal das Skript aus dem ersten Beitrag

      1 Reply Last reply Reply Quote 0
      • U
        UweS last edited by

        Hallo

        Werde ich machen sichere gerade meine SD Karte, gebe dann Bescheid.

        Danke

        1 Reply Last reply Reply Quote 0
        • U
          UweS last edited by

          HAllo

          Das war ein guter Tip, jetzt kommen ein paar Fehler

          ! 01:20:20.695
          ! [info]
          ! javascript.0 Stop script script.js.common.Vorsteuerung
          ! 01:20:55.438
          ! [info]
          ! javascript.0 Stop script script.js.common.Vorsteuerung
          ! 01:20:55.468
          ! [info]
          ! javascript.1 Stop script script.js.common.Vorsteuerung
          ! 01:20:55.473
          ! [info]
          ! javascript.2 Stop script script.js.common.Vorsteuerung
          ! 01:21:03.807
          ! [info]
          ! javascript.0 Start javascript script.js.common.Vorsteuerung
          ! 01:21:03.809
          ! [warn]
          ! javascript.0 at handleRoom (script.js.common.Vorsteuerung:46:25)
          ! 01:21:03.809
          ! [warn]
          ! javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 01:21:03.810
          ! [warn]
          ! javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 01:21:03.810
          ! [warn]
          ! javascript.0 at handleRoom (script.js.common.Vorsteuerung:48:26)
          ! 01:21:03.812
          ! [warn]
          ! javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 01:21:03.812
          ! [warn]
          ! javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 01:21:03.818
          ! [info]
          ! javascript.0 script.js.common.Vorsteuerung: Aufheizzeit von 165 runtergesetzt auf 150
          ! 01:21:03.818
          ! [info]
          ! javascript.0 script.js.common.Vorsteuerung: ermittelte Vorlaufzeit Schlafzimmer: null -> 22: 3300m (150m/K)
          ! 01:21:03.818
          ! [warn]
          ! javascript.0 at handleRoom (script.js.common.Vorsteuerung:46:25)
          ! 01:21:03.819
          ! [warn]
          ! javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 01:21:03.819
          ! [warn]
          ! javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 01:21:03.819
          ! [warn]
          ! javascript.0 at handleRoom (script.js.common.Vorsteuerung:48:26)
          ! 01:21:03.820
          ! [warn]
          ! javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 01:21:03.820
          ! [warn]
          ! javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 01:21:03.820
          ! [info]
          ! javascript.0 script.js.common.Vorsteuerung: ermittelte Vorlaufzeit Wohnzimmer: null -> 23: 1909m (83m/K)
          ! 01:21:03.821
          ! [info]
          ! javascript.0 script.js.common.Vorsteuerung: registered 2 subscriptions and 0 schedules
          ! 01:21:03.821
          ! [warn]
          ! javascript.0 at Object. (script.js.common.Vorsteuerung:74:17)
          ! 01:21:03.821
          ! [info]
          ! javascript.0 script.js.common.Vorsteuerung: Voraussteuerung Thermostat Schlafzimmer aktiviert auf 22
          ! 01:21:03.822
          ! [warn]
          ! javascript.0 at Object. (script.js.common.Vorsteuerung:74:17)
          ! 01:21:03.822
          ! [info]
          ! javascript.0 script.js.common.Vorsteuerung: Voraussteuerung Thermostat Wohnzimmer aktiviert auf 23
          Hier der Teil vom Skript den ich selber eingetragen habe

          ! var rooms= {
          ! 'Schlafzimmer': {
          ! stateIdSchedule: "javascript.0.Heizung.Heizplan.Schlafzimmer.Source_Schedule", // Nächter Schaltzeitpunkt
          ! stateIdNextTemperatur: "javascript.0.Heizung.Heizplan.Schlafzimmer.Source_NextTemp", // Nächste Wunschtemperatur
          ! stateIdAufheizzeit: "javascript.0.Heizung.Aufheizzeit.Schlafzimmer", // Aufheizzeit für diesen Raum (min pro K)
          ! stateIdSollTemperatur: "hm-rpc.0.OEQ0667289:4.SET_TEMPERATURE", // State zum Setzen der Solltemperatur
          ! stateIdIstTemperatur: "hm-rpc.0.OEQ0578394:1.TEMPERATURE" // Ist-Temperatur
          ! },
          ! 'Wohnzimmer': {
          ! stateIdSchedule: "javascript.0.Heizung.Heizplan.Wohnzimmer.Source_Schedule", // Nächter Schaltzeitpunkt
          ! stateIdNextTemperatur: "javascript.0.Heizung.Heizplan.Wohnzimmer.Source_NextTemp", // Nächste Wunschtemperatur
          ! stateIdAufheizzeit: "javascript.0.Heizung.Aufheizzeit.Wohnzimmer", // Aufheizzeit für diesen Raum (min pro K)
          ! stateIdSollTemperatur: "hm-rpc.0.OEQ0577977:2.SET_TEMPERATURE", // State zum Setzen der Solltemperatur hm-rpc.0.OEQ0987006.2.SET_TEMPERATURE
          ! stateIdIstTemperatur: "hm-rpc.0.OEQ0577977:2.ACTUAL_TEMPERATURE" // Ist-Temperatur hm-rpc.0.JEQ0122620.1.TEMPERATURE
          ! }
          ! };
          ! var minimaleTemperaturdifferenz = 0.5; // wenn Temperaturdifferenz Ist zu Soll weniger als diese Angabe ist dann erfolgt keine Voraussteuerung
          ! var maxIncrease1K = 150; // Falls der Wert für die Aufheizzeit größer als dieser Wert ist wird es auf diesen zurückgesetzt
          ! var debug = true; // Ausführliches Debug-Logging

          Hier die nächsten Fehlermeldungen, so wie es aussieht findet er meine Geräte nicht.

          ! 2018-01-18 01:25:30.321 - [32minfo[39m: javascript.0 Start javascript script.js.common.Vorsteuerung
          ! 2018-01-18 01:25:30.332 - [33mwarn[39m: javascript.0 State "hm-rpc.0.OEQ0578394:1.TEMPERATURE" not found
          ! 2018-01-18 01:25:30.354 - [33mwarn[39m: javascript.0 at handleRoom (script.js.common.Vorsteuerung:46:25)
          ! 2018-01-18 01:25:30.355 - [33mwarn[39m: javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 2018-01-18 01:25:30.355 - [33mwarn[39m: javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 2018-01-18 01:25:30.356 - [33mwarn[39m: javascript.0 at ContextifyScript.Script.runInContext (vm.js:35:29)
          ! 2018-01-18 01:25:30.356 - [33mwarn[39m: javascript.0 State "hm-rpc.0.OEQ0667289:4.SET_TEMPERATURE" not found
          ! 2018-01-18 01:25:30.360 - [33mwarn[39m: javascript.0 at handleRoom (script.js.common.Vorsteuerung:48:26)
          ! 2018-01-18 01:25:30.361 - [33mwarn[39m: javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 2018-01-18 01:25:30.361 - [33mwarn[39m: javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 2018-01-18 01:25:30.361 - [33mwarn[39m: javascript.0 at ContextifyScript.Script.runInContext (vm.js:35:29)
          ! 2018-01-18 01:25:30.362 - [32minfo[39m: javascript.0 script.js.common.Vorsteuerung: Aufheizzeit von 165 runtergesetzt auf 150
          ! 2018-01-18 01:25:30.363 - [32minfo[39m: javascript.0 script.js.common.Vorsteuerung: ermittelte Vorlaufzeit Schlafzimmer: null -> 22: 3300m (150m/K)
          ! 2018-01-18 01:25:30.365 - [33mwarn[39m: javascript.0 State "hm-rpc.0.OEQ0577977:2.ACTUAL_TEMPERATURE" not found
          ! 2018-01-18 01:25:30.369 - [33mwarn[39m: javascript.0 at handleRoom (script.js.common.Vorsteuerung:46:25)
          ! 2018-01-18 01:25:30.370 - [33mwarn[39m: javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 2018-01-18 01:25:30.370 - [33mwarn[39m: javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 2018-01-18 01:25:30.370 - [33mwarn[39m: javascript.0 at ContextifyScript.Script.runInContext (vm.js:35:29)
          ! 2018-01-18 01:25:30.371 - [33mwarn[39m: javascript.0 State "hm-rpc.0.OEQ0577977:2.SET_TEMPERATURE" not found
          ! 2018-01-18 01:25:30.377 - [33mwarn[39m: javascript.0 at handleRoom (script.js.common.Vorsteuerung:48:26)
          ! 2018-01-18 01:25:30.378 - [33mwarn[39m: javascript.0 at initialize (script.js.common.Vorsteuerung:28:9)
          ! 2018-01-18 01:25:30.378 - [33mwarn[39m: javascript.0 at script.js.common.Vorsteuerung:21:1
          ! 2018-01-18 01:25:30.378 - [33mwarn[39m: javascript.0 at ContextifyScript.Script.runInContext (vm.js:35:29)
          ! 2018-01-18 01:25:30.379 - [32minfo[39m: javascript.0 script.js.common.Vorsteuerung: ermittelte Vorlaufzeit Wohnzimmer: null -> 23: 1909m (83m/K)
          ! 2018-01-18 01:25:30.380 - [32minfo[39m: javascript.0 script.js.common.Vorsteuerung: registered 2 subscriptions and 0 schedules
          ! 2018-01-18 01:25:30.684 - [33mwarn[39m: javascript.0 State "hm-rpc.0.OEQ0667289:4.SET_TEMPERATURE" not found
          ! 2018-01-18 01:25:30.685 - [33mwarn[39m: javascript.0 at Object. <anonymous>(script.js.common.Vorsteuerung:74:17)
          ! 2018-01-18 01:25:30.686 - [32minfo[39m: javascript.0 script.js.common.Vorsteuerung: Voraussteuerung Thermostat Schlafzimmer aktiviert auf 22
          ! 2018-01-18 01:25:30.687 - [33mwarn[39m: javascript.0 State "hm-rpc.0.OEQ0577977:2.SET_TEMPERATURE" not found
          ! 2018-01-18 01:25:30.688 - [33mwarn[39m: javascript.0 at Object. <anonymous>(script.js.common.Vorsteuerung:74:17)
          ! 2018-01-18 01:25:30.689 - [32minfo[39m: javascript.0 script.js.common.Vorsteuerung: Voraussteuerung Thermostat Wohnzimmer aktiviert auf 23[/spoiler]</anonymous></anonymous>

          Sehr interessant

          1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 last edited by

            Ja prüfe mal die State ids … die Doppelpunkte sind falsch. Das müssen Punkte sein!

            1 Reply Last reply Reply Quote 0
            • U
              UweS last edited by

              Hi, gemacht und es scheint zu funktionieren, es kommen derweilen keine Fehler mehr.

              Interessanterweise habe ich die stateIDS mit ID einfügen übernommem und da kommen die Doppelpunkte. Beim Heizungsskript habe ich das auch gemacht und da waren Punkte.

              Ich muss mal schauen ob ich das reproduzieren kann.

              Danke

              1 Reply Last reply Reply Quote 0
              • L
                Linedancer last edited by

                Hallo Gemeinde,

                ich bin ja noch etwas Feedback schuldig. Habe gewartet, bis die Aussentemperatuen etwas weiter gefallen sind, damit die Auswertung repräsentativer wird.

                Als Referenz habe ich nicht die aktuelle Ausssentemperatur bei Start der Heizphase genommen, sondern die gedämpfte Aussentemp die mir der Viessmann Adapter zur Verfügung stellt.

                In der 2 monatigen Messphase habe ich im Mittel eine Aufheizzeit von 101 Minuten mit einer Standardabweichung von +/- 35 Minuten gemessen. In dieser Zeit hat das Aufheizscript (allerdings in der ersten Version) 130 Minuten ausgeworfen.

                Hier die letzten 10 Werte das Aufheizscripts:

                [155,150,129,133,150,157,67,90,120,150]
                
                

                Die Abhängigkeit von der Aussentemp steht ja in direktem Zusammenhang mit dem Dämmstandard des Gebäudes. Bei meinem (nicht so perfekt gedämmten) Gebäude werde ich über die Verknüpfung mit der Aussentemp gehen.

                Ich habe die Dauer der Aufheizzeit bis zur Solltemp über der gedämpften Aussentemp aufgetragen und daraus eine lineare Gleichung abgeleitet mit der ich den optimalen Startpunkt berechnen werde.

                1 Reply Last reply Reply Quote 0
                • T
                  thobastian last edited by

                  Hallo !

                  ich habe normalerweise das Heizungsthermostatskript laufen. Ich habe aber einen Raum mit Stellantrieb.

                  Da ich aber kein Homematic-Thermostat für den Raum habe, werden auch keine Datenpunkte erstellt, wie z.B. hier javascript.0.Heizung.Heizplan.Arbeitszimmer

                  Was kann ich dafür machen ?

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    Du kannst den Stellantrieb doch genauso dort anlegen?Warum fehlen dann States? Verstehe ich gerade nicht

                    1 Reply Last reply Reply Quote 0
                    • AxelF1977
                      AxelF1977 last edited by

                      Hi,

                      ich habe das Problem, dass bei mir nur Werte erfasst werden, wenn diese über den Wandthermostat (Homematic HM-TC-IT-WM-W-EU) kommen. Bei Heizungen die aktuell nur über den Heizungsthermostat (Homematic HM-CC-RT-DN) verfügen, werden keine Daten der Aufheiz-Zeiterfassung erfasst (siehe Screenshots). Thermostate waren zum testen schon zu 100% geöffnet, im Script war 80% Öffnung als Wert Heizen eingestellt.

                      Im Script sieht es so aus (Badezimmer mit Wandthermostat, Wohnzimmer ohne)

                      Im Script

                          'Wohnzimmer': {
                              stateIdHeizungStatus: "hm-rpc.2.**********.4.VALVE_STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
                              heizungStatusIstAktor: false, // Status-State ist Aktor (=true) oder Stellventil (=false)
                              stateIdIstTemperatur: "hm-rpc.2.**********.4.ACTUAL_TEMPERATURE" // Ist-Temperatur
                          },
                          'Badezimmer': {
                              stateIdHeizungStatus: "hm-rpc.2.**********.4.VALVE_STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
                              heizungStatusIstAktor: false, // Status-State ist Aktor (=true) oder Stellventil (=false)
                              stateIdIstTemperatur: "hm-rpc.2.**********.2.ACTUAL_TEMPERATURE" // Ist-Temperatur
                          },    
                      
                      

                      Was mache ich falsch?
                      4249_java-wohnzimmer.png
                      4249_java-badezimmer.png
                      4249_adapter-wohnzimmer.png
                      4249_adapter-badezimmer.png

                      1 Reply Last reply Reply Quote 0
                      • apollon77
                        apollon77 last edited by

                        Die angegebenen Datenpunkte stimmen? Es kommen da auch Werte von den Geräten rein und damit an?

                        Im Skript gibts ein "debug = true/false". Mach mal auf true .. dann wird geloggt was er so tut.

                        1 Reply Last reply Reply Quote 0
                        • AxelF1977
                          AxelF1977 last edited by

                          @apollon77:

                          Die angegebenen Datenpunkte stimmen? Es kommen da auch Werte von den Geräten rein und damit an?

                          Im Skript gibts ein "debug = true/false". Mach mal auf true .. dann wird geloggt was er so tut. `

                          Guten Morgen,

                          danke für Deine schnelle Antwort. Wie gesagt, es betrifft Heizungen ohne Wandthermostat, die mit Wandthermostaten funktionieren im Script

                          Also laut Log, werden die Datenpunkte richtig erkannt. Die Ventilstellungen der beiden Heizkörpern aus dem Beispiel werden richtig erfasst.

                          07:14:06.508	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Raum Kueche initialisiert, status=false
                          07:14:06.508	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Raum ****** initialisiert, status=false
                          07:14:06.508	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Raum Schlafzimmer initialisiert, status=false
                          07:14:06.508	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Raum ****** initialisiert, status=false
                          07:14:06.508	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Raum Wohnzimmer initialisiert, status=false
                          07:14:06.508	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: registered 6 subscriptions and 0 schedules
                          07:16:52.084	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Änderung Status Aktor FBH Wohnzimmer: 0--> 90 (ack=true, from=system.adapter.hm-rpc.2) status bisher=false
                          07:16:52.085	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Wohnzimmer timeDiff=0
                          07:21:55.562	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Änderung Status Aktor FBH Wohnzimmer: 90--> 90 (ack=true, from=system.adapter.hm-rpc.2) status bisher=true
                          07:26:46.969	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Änderung Status Aktor FBH Badezimmer: 0--> 85 (ack=true, from=system.adapter.hm-rpc.2) status bisher=false
                          07:26:46.969	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Badezimmer timeDiff=0
                          07:27:05.568	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Änderung Status Aktor FBH Wohnzimmer: 90--> 0 (ack=true, from=system.adapter.hm-rpc.2) status bisher=true
                          07:29:28.239	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Änderung Status Aktor FBH Badezimmer: 85--> 85 (ack=true, from=system.adapter.hm-rpc.2) status bisher=true
                          07:34:07.472	[info]	javascript.0 script.js.Heizungen.Heizautomation.Aufheizmessung: Änderung Status Aktor FBH Badezimmer: 85--> 0 (ack=true, from=system.adapter.hm-rpc.2) status bisher=true
                          

                          Die Punkte decken sich auch mit den Charts die ich aufzeichne
                          4249_heizung-badezimmer.png
                          4249_heizung-wohnzimmer.png

                          1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 last edited by

                            Du hast nen Bug gefunden erstmal …

                            in der Funktion "initialize" bitte aus

                                    if (! rooms[room].ventilOeffnungHeizen) rooms[room].ventilOeffnungHeizen = minIncrease1K;
                            

                            das heir machen:

                                    if (! rooms[room].ventilOeffnungHeizen) rooms[room].ventilOeffnungHeizen = ventilOeffnungHeizen;
                            

                            Weiterhin agiert das Skript frühestens nach 30 Minuten ventil geöffnet, weil jede Zeit darunter keine klare aussage zu einer aufheizzeit eines Raumen möglich macht (meiner Meinung nach).

                            1 Reply Last reply Reply Quote 0
                            • AxelF1977
                              AxelF1977 last edited by

                              @apollon77:

                              Du hast nen Bug gefunden erstmal …

                              Weiterhin agiert das Skript frühestens nach 30 Minuten ventil geöffnet, weil jede Zeit darunter keine klare aussage zu einer aufheizzeit eines Raumen möglich macht (meiner Meinung nach). `

                              Habe den Code ausgetauscht. Ich werde berichten. Wir sind jetzt übers Wochenende weg, lasse die Heizungen zum Testen aber normal laufen.

                              hmm, ich habe mir gerade mal die Floats angesehen der Heizkörper. Die sind selten 30 min mehr als 80% geöffnet. In manchen Räumen, wo es keine Werte gibt, tatsächlich oft nur um die 15 min. Kann ich diese Zeit im Script ändern? Dass das Script auch nach 15 min schon Werte ausgibt. Denn so sind unsere Heizzyklen. Zumindest aktuell, da es noch wärmer ist und es erst richtig kalt wird, da werden die Thermostate sicherlich auch länger öffnen.

                              Ich denke das geht über diese Variable?````
                              var minIncrease1K = 30;

                              
                              Danke für Deine Hilfe
                              1 Reply Last reply Reply Quote 0
                              • apollon77
                                apollon77 last edited by

                                ne weiter unten ist ein if (timeDiff > 30) … da die 30 runtersetzen

                                1 Reply Last reply Reply Quote 0
                                • AxelF1977
                                  AxelF1977 last edited by

                                  @apollon77:

                                  ne weiter unten ist ein if (timeDiff > 30) … da die 30 runtersetzen `

                                  Gefunden, danke Dir. Ich werde bereichten am Sonntag.

                                  Schönes Wochenende

                                  1 Reply Last reply Reply Quote 0
                                  • AxelF1977
                                    AxelF1977 last edited by

                                    @AxelF1977:

                                    @apollon77:

                                    ne weiter unten ist ein if (timeDiff > 30) … da die 30 runtersetzen `

                                    Gefunden, danke Dir. Ich werde bereichten am Sonntag.

                                    Schönes Wochenende `

                                    Leider hat sich nichts verändert. In die Dateien werden weiterhin nur die Werte geschrieben, die von den Heizungen mit den Wandthermostaten kommen. Ich habe den Wert if (timeDiff > 30) mittlerweile auf if (timeDiff > 10) gesetzt. Trotzdem nichts.

                                    1 Reply Last reply Reply Quote 0
                                    • apollon77
                                      apollon77 last edited by

                                      Dann hab ich auch gerade keine Idee. Baue in die on-Funktionen Logging ein das Du siehst was passiert und was er so tut (und warum nicht). Ich habe leider keine thermostate also kann ich das nur blind ansehen. Sorry

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      802
                                      Online

                                      31.9k
                                      Users

                                      80.1k
                                      Topics

                                      1.3m
                                      Posts

                                      8
                                      51
                                      6993
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo