Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter fronius-solarweb

NEWS

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    8
    1
    462

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    14
    1
    2.7k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.9k

Test Adapter fronius-solarweb

Geplant Angeheftet Gesperrt Verschoben Tester
247 Beiträge 49 Kommentatoren 61.5k Aufrufe 43 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    legro
    schrieb am zuletzt editiert von legro
    #238

    Mittlerweile habe ich unsere Visualisierung zum dritten Mal überarbeitet. Herausgekommen ist u.a. dabei eine View mit vier Ansichten: Kosten, Energie (AC), Quoten und Energie (DC).

    2fdb1b5d-2211-4056-bbb9-77e962e91b78-image.jpeg
    93b7004b-7ecb-40b4-9735-d79b5792a8ff-image.jpeg

    19722fdb-82c7-44e1-8651-c45b78c6d234-image.jpeg

    Die Berechnung der Quoten (Autarkie und Eigenverbrauch) habe ich aus den Daten der AC-Werte errechnet; diese sind somit echte Werte, nicht etwa die etwas geschönten aus der App, die auf den DC-Werten basieren. Der Gesamtwirkungsgrad (AC/DC) beinhaltet somit alle Verluste aus DC->AC Wandlung und in/aus Batterie. Da bei uns nur ein geringer Teil der Energie in der Batterie zwischengespeichert wird, ist der Wirkungsgrad mit über 91% recht hoch.

    Die in den Views angegebenen Wirkungsgrade beruhen ebenfalls auf AC-Werten. Sie basieren aus mittlerweile über drei Jahre gesammelten Daten.

    In den Zeilen 71 bis 78 findet man die Berechnung der Werte für Autarkie und Eigenquote. Die verwendeten Daten stammen zwar aus den ECharts-Diagrammen (s. FlexCharts-Adapter von @jrbwh ), aber ihre Herkunft findet man in den Zeilen 53 - 69 erläutert.

    Bei weiteren Fragen - insbesondere zu dem im Skript nicht dokumentierten Programmcode - helfe ich gerne weiter.

    function getAktMonthYear() {
        return {
            month: G_getMonthAsNumber(getState('0_userdata.0.Fronius.flexCharts.selMonth').val),
            year: getState('0_userdata.0.Fronius.flexCharts.selYear').val
            }
    }
    
    function checkTarifStrom(d) {
        let arr = JSON.parse(getState('0_userdata.0.Energie_Tarife.Strom.StromBezug').val)
        for(let i=0; i<arr.length; i++) {
            if(new Date(arr[i].Zeitraum.Start) <= d && d <= new Date(arr[i].Zeitraum.Ende)) {
                return {Verkaufspreis: arr[i].Verkaufspreis, Energiepreis: arr[i].Energiepreis}
            }
        }
        return 0
    }
    //############################ chartEnergieYear: Monatsenergien ############################
    
    
    function refreshYear() {
    
        let aktYear = getState('0_userdata.0.Fronius.flexCharts.selYear').val
        let dataMonths = []
    
        //Diagramm Energien in KWh im RAM allokieren
        let jsonChartKWh = '0_userdata.0.Fronius.flexCharts.chartEnergieYear'
        let yearChartKWh = JSON.parse(getState(jsonChartKWh).val)
        //Diagramm Autarkie&Effizienz in % im RAM allokieren
        let jsonChartAutPrc = '0_userdata.0.Fronius.flexCharts.chartEffienzYear'
        let yearChartAutPrc = JSON.parse(getState(jsonChartAutPrc).val)
        //Diagramm Kosten im RAM allokieren
        let jsonChartKosten = '0_userdata.0.Fronius.flexCharts.chartKostenYear'
        let yearChartKosten = JSON.parse(getState(jsonChartKosten).val)
        //Diagramm Energie DC im RAM allokieren
        let jsonChartYearDC = '0_userdata.0.Fronius.flexCharts.chartYearDC'
        let yearChartDC = JSON.parse(getState(jsonChartYearDC).val)
    
        yearChartKWh.series[0].data = []  //fromGridKWh
        yearChartKWh.series[1].data = []  //toGridKWh
        yearChartKWh.series[2].data = []  //fromSolarKWh (Eigenverbrauch)
    
        yearChartAutPrc.series[0].data = [] //Autarkie
        yearChartAutPrc.series[1].data = [] //Eigenverbrauch
    
        yearChartKosten.series[0].data = [] //fromGridEuro
        yearChartKosten.series[1].data = [] //toGridEuro
        yearChartKosten.series[2].data = [] //EigenverbrauchEuro
    
        yearChartDC.series[0].data =[] //dcGartenhaus
        yearChartDC.series[1].data =[] //dcTerrasse
    
        for (let i=1;i<13;i++) {
            //Monatstarif - Der Stromtarif ändert sich nur zum Monatswechsel
            let tarif = checkTarifStrom(new Date(`${aktYear}-('0'+ ${('0' + i).slice(-2)}-15`))
    
            //fromGrid
            let fromGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.fromGridWh`).val)
            yearChartKWh.series[0].data.push(G_runden(fromGridKWh.reduce((sum, item) => sum + item, 0) / 1000,3))
            yearChartKosten.series[0].data.push(G_runden(tarif.Energiepreis * yearChartKWh.series[0].data[i-1],3))        
    
            //toGrid
            let toGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.toGridWh`).val)
            yearChartKWh.series[1].data.push(G_runden(toGridKWh.reduce((sum, item) => sum + item, 0) / 1000,3))
            yearChartKosten.series[1].data.push(G_runden(tarif.Verkaufspreis * yearChartKWh.series[1].data[i-1],3))
    
            //fromSolar bzw. Eigenverbrauch
            let fromSolarKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.solarWh`).val)
            yearChartKWh.series[2].data.push(G_runden(fromSolarKWh.reduce((sum, item) => sum + item, 0) / 1000 - yearChartKWh.series[1].data[i-1],3))
            yearChartKosten.series[2].data.push(G_runden(tarif.Energiepreis * yearChartKWh.series[2].data[i-1],3))
    
            //Autarkie
            let gesamtVerbrauch = yearChartKWh.series[0].data[i-1] + yearChartKWh.series[2].data[i-1]
            let eigenVerbrauch = yearChartKWh.series[2].data[i-1]
            let autarkieQuote = eigenVerbrauch / gesamtVerbrauch
            let gesamtSolar = yearChartKWh.series[2].data[i-1] + yearChartKWh.series[1].data[i-1]
            let eigenQuote = eigenVerbrauch / gesamtSolar
            yearChartAutPrc.series[0].data.push(G_runden(100*autarkieQuote,2))
            yearChartAutPrc.series[1].data.push(G_runden(100*eigenQuote,2))
    
            //Energien DC
            let dcGartenhausKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.dcGartenhausKWh`).val)
            dcGartenhausKWh ||= []
            yearChartDC.series[0].data.push(G_runden(dcGartenhausKWh.reduce((sum, item) => sum + item,0) / 1000,3))
            let dcTerrasseKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.dcTerrasseKWh`).val)
            dcTerrasseKWh ||= []
            yearChartDC.series[1].data.push(G_runden(dcTerrasseKWh.reduce((sum, item) => sum + item,0) / 1000,3))
    
        }
    
        //Jahresummen
        // - fromGrid
        let fromGridKWhJahressumme = yearChartKWh.series[0].data.reduce((sum, item) => sum + item, 0)
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrFromGridKWh', fromGridKWhJahressumme, true)
        let fromGridEuroJahressumme = yearChartKosten.series[0].data.reduce((sum, item) => sum + item, 0)
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrFromGridEuro', fromGridEuroJahressumme, true)
    
        // - toGrid
        let toGridKWhJahressumme = yearChartKWh.series[1].data.reduce((sum, item) => sum + item, 0)
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrToGridKWh', toGridKWhJahressumme, true)
        let toGridEuroJahressumme = yearChartKosten.series[1].data.reduce((sum, item) => sum + item, 0)
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrToGridEuro', toGridEuroJahressumme, true)
    
        // - eigenverbrauch
        let eigenverbrauchKWhJahressumme = yearChartKWh.series[2].data.reduce((sum, item) => sum + item, 0)
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrEigenverbrauchKWh', eigenverbrauchKWhJahressumme, true)
        let eigenverbrauchEuroJahressumme = yearChartKosten.series[2].data.reduce((sum, item) => sum + item, 0)
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrEigenverbrauchEuro', eigenverbrauchEuroJahressumme, true)
        //Gesamtverbrauch
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrKonsumKWh', eigenverbrauchKWhJahressumme + fromGridKWhJahressumme, true)
        setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrKonsumEuro', eigenverbrauchEuroJahressumme + fromGridEuroJahressumme, true)
    
        //Titelzeilen
        yearChartKWh.title.text = 'elektrische Energien in ' + aktYear
        yearChartKosten.title.text = 'Energienkosten in ' + aktYear
        yearChartAutPrc.title.text = 'Autarkie/Eigenquoten in ' + aktYear
        yearChartDC.title.text = 'elektrische Energie DC in ' + aktYear
        //x-Achse beschriften
        yearChartKWh.xAxis[0].data = Array.from({length: 12}, (tmp,i) => G_shrtMonths[i])
        //yearChartKWh.xAxis[0].data = Array.from({length: 12}, (tmp,i) => i+1)
    
        //Diagrammm als JSON im Objektbaum ablegen
        setState(jsonChartKWh,JSON.stringify(yearChartKWh),true)
        setState(jsonChartAutPrc,JSON.stringify(yearChartAutPrc),true)
        setState(jsonChartKosten,JSON.stringify(yearChartKosten),true)
        setState(jsonChartYearDC,JSON.stringify(yearChartDC),true)
    
    }
    
    
    //############################ chartEnergieMonth : Tagesenergien ############################
    
    
    function refreshMonth() {
    
        let aktMonthYear = getAktMonthYear()
        let tarif = checkTarifStrom(new Date(`${aktMonthYear.year}-('0'+ ${('0' + aktMonthYear.month).slice(-2)}-15`))
    
        //Diagramm Energien in KWh im RAM allokieren
        let jsonChartKWh = '0_userdata.0.Fronius.flexCharts.chartEnergieMonth'
        let monthChartKWh = JSON.parse(getState(jsonChartKWh).val)
        //Diagramm Autarkie&Effizienz in % im RAM allokieren
        let jsonChartAutPrc = '0_userdata.0.Fronius.flexCharts.chartEffizienzMonth'
        let monthChartAutPrc = JSON.parse(getState(jsonChartAutPrc).val)
        //Diagramm Kosten in € im RAM allokieren
        let jsonChartKosten = '0_userdata.0.Fronius.flexCharts.chartKostenMonth'
        let monthChartKosten = JSON.parse(getState(jsonChartKosten).val)
        //Diagramm Energie DC im RAM allokieren
        let jsonChartMonthDC = '0_userdata.0.Fronius.flexCharts.chartMonthDC'
        let monthChartDC = JSON.parse(getState(jsonChartMonthDC).val)
        
        //Tabelle fromGridKWh in KWh im RAM allokieren
        let fromGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.fromGridWh`).val)
        fromGridKWh = fromGridKWh.map(item => item / 1000)
        //Tabelle toGridKWh in KWh im RAM allokieren
        let toGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.toGridWh`).val)
        toGridKWh = toGridKWh.map(item => G_runden(item/1000,3))
        let fromSolarKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.solarWh`).val) 
        fromSolarKWh = fromSolarKWh.map(item => item / 1000) //erzeugte Solarenergie AC
        //Tabelle eigenVerbrauch
        let eigenVerbrauchKWh = fromSolarKWh.map((item, i) => G_runden(item - toGridKWh[i],3)) //Eigenverbrauch AC
        let gesamtVerbrauchKWh = eigenVerbrauchKWh.map((item, i) => G_runden(item + fromGridKWh[i],3)) //Gesamtverbrauch AC
    
        //Tabelle dcGartenhausKWh und dcTerrasseKWh in KWh im RAM allokieren
        let dcGartenhausKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.dcGartenhausKWh`).val)
        dcGartenhausKWh ||= []
        dcGartenhausKWh = dcGartenhausKWh.map(item => G_runden(item / 1000,3))
        let dcTerrasseKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.dcTerrasseKWh`).val)
        dcTerrasseKWh ||= []
        dcTerrasseKWh = dcTerrasseKWh.map(item => G_runden(item / 1000,3))
    
        //Energiesummen
        // - fromGrid
        let fromGridKWhSum = fromGridKWh.reduce((sum, item) => sum + item, 0)
        let fromGridEuroSum = fromGridKWhSum * tarif.Energiepreis
        // - toGrid
        let toGridKWhSum = toGridKWh.reduce((sum, item) => sum + item, 0)
        let toGridEuroSum = toGridKWhSum * tarif.Verkaufspreis
        // - Eigenverbrauch    
        let eigenverbrauchKWhSum = fromSolarKWh.reduce((sum, item) => sum + item) - toGridKWhSum
        let eigenverbrauchEuroSum = eigenverbrauchKWhSum * tarif.Energiepreis
        //Gesamtverbrauch bzw. Konsum
        let konsumKWhSum = fromGridKWhSum + eigenverbrauchKWhSum
        let konsumEuroSum = konsumKWhSum * tarif.Energiepreis
        //Energien DC
    
    
        //Summen in Objekte Speichern
        // - fromGrid
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatFromGridKWh',fromGridKWhSum,true)
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatFromGridEuro',fromGridEuroSum,true)
        // - toGrid
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatToGridKWh',toGridKWhSum,true)
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatToGridEuro',toGridEuroSum,true)
        // - Eigenverbrauch
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatEigenverbrauchKWh',eigenverbrauchKWhSum,true)
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatEigenverbrauchEuro',eigenverbrauchEuroSum,true)
        // - Konsum
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatKonsumKWh',konsumKWhSum,true)
        setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatKonsumEuro',konsumEuroSum,true)
    
        //Titelzeilen
        //Energien AC
        monthChartKWh.title.text = 'elektrische Energien im '
        monthChartKWh.title.text = (aktMonthYear.month == 3) ? monthChartKWh.title.text.concat('März') : monthChartKWh.title.text.concat(G_getMonthLongName(aktMonthYear.month))
        monthChartKWh.title.text = monthChartKWh.title.text.concat(' (' + aktMonthYear.year + ')')
        //Kosten
        monthChartKosten.title.text = 'Stromkosten im '
        monthChartKosten.title.text = (aktMonthYear.month == 3) ? monthChartKosten.title.text.concat('März') : monthChartKosten.title.text.concat(G_getMonthLongName(aktMonthYear.month))
        monthChartKosten.title.text = monthChartKosten.title.text.concat(' (' + aktMonthYear.year + ')')
        //Quoten
        monthChartAutPrc.title.text = 'Autarkie&Eigenquote im '
        monthChartAutPrc.title.text = (aktMonthYear.month == 3) ? monthChartAutPrc.title.text.concat('März') : monthChartAutPrc.title.text.concat(G_getMonthLongName(aktMonthYear.month))
        monthChartAutPrc.title.text = monthChartAutPrc.title.text.concat(' (' + aktMonthYear.year + ')')
        //Energien DC
        monthChartDC.title.text = 'elektrische Energien DC im '
        if (aktMonthYear.month == 3) {
            monthChartDC.title.text = monthChartDC.title.text + 'März'
        } else {
            monthChartDC.title.text = monthChartDC.title.text + G_getMonthLongName(aktMonthYear.month)
        }
        monthChartDC.title.text = monthChartDC.title.text +' (' + aktMonthYear.year + ')'
        //x-Achse beschriften
        //x-Achse
        monthChartKWh.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
        monthChartKosten.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
        monthChartAutPrc.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
        monthChartDC.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
        //y-Achsenwerte eintragen ..
        //Netzbezug, Einspeisung, Eigenverbrauch
        monthChartKWh.series[0].data = fromGridKWh
        monthChartKWh.series[1].data = toGridKWh
        monthChartKWh.series[2].data = eigenVerbrauchKWh
        //Kosten: Netzbezug, Einspeisung, Eigenverbrauch
        monthChartKosten.series[0].data = fromGridKWh.map((item,i) => item * tarif.Energiepreis)
        monthChartKosten.series[1].data = toGridKWh.map((item,i) => item * tarif.Verkaufspreis)
        monthChartKosten.series[2].data = eigenVerbrauchKWh.map((item,i) => item * tarif.Energiepreis)
        //Autarkie&Eigenverbrauch
        monthChartAutPrc.series[0].data = eigenVerbrauchKWh.map((item, i) => G_runden(100*item / gesamtVerbrauchKWh[i],1)) //Autarkie
        monthChartAutPrc.series[1].data = eigenVerbrauchKWh.map((item,i) => G_runden(100*item / fromSolarKWh[i],1)) //Eigenquote
    
        //Energien DC
        monthChartDC.series[0].data = dcGartenhausKWh
        monthChartDC.series[1].data = dcTerrasseKWh
    
    
        //Diagrammme als JSON im Objektbaum ablegen
        setState(jsonChartKWh,JSON.stringify(monthChartKWh),true)
        setState(jsonChartKosten,JSON.stringify(monthChartKosten),true)
        setState(jsonChartAutPrc,JSON.stringify(monthChartAutPrc),true)
        setState(jsonChartMonthDC,JSON.stringify(monthChartDC),true)
    }
    
    
    //############################ Scheduler & Trigger ############################
    
    
    //alle 4 Minuten die Anzeige aktualisieren
    
    schedule('*/4 * * * *', () => {
        refreshMonth(); refreshYear()
        setState('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
    });
    
    on({id:'0_userdata.0.Fronius.flexCharts.selMonth',change: 'any'},(obj) => {
        refreshMonth()
        setState('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
    })
    
    on({id:'0_userdata.0.Fronius.flexCharts.selYear',change: 'any'},(obj) => {
        //G_setListYears('0_userdata.0.Fronius.Monatstabellen', '0_userdata.0.Fronius.Charts.lstYears')
        setStateAsync('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
        G_setListMonths(getState('0_userdata.0.Fronius.flexCharts.selYear').val, '0_userdata.0.Fronius.Monatstabellen',
            '0_userdata.0.Fronius.flexCharts.lstMonths')
        refreshYear(); refreshMonth()
        setState('0_userdata.0.Fronius.flexCharts.rfhButton', 0, false)
    })
    
    on({id:'0_userdata.0.Fronius.flexCharts.buttonAktualisieren',change: 'any'},(obj) => {
        refreshMonth(); refreshYear()
        setState('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
    })
    
    
    //############################ Skriptstart ############################
    
    //listMonths des zugehörigen DropDown-Widgets füllen
    G_setListYears('0_userdata.0.Fronius.Monatstabellen', '0_userdata.0.Fronius.flexCharts.lstYear')
    //listYears des zugehörigen DropDown-Widgets füllen
    G_setListMonths(getState('0_userdata.0.Fronius.flexCharts.selYear').val, '0_userdata.0.Fronius.Monatstabellen',
        '0_userdata.0.Fronius.flexCharts.lstMonths')
    

    Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

    NegaleinN 1 Antwort Letzte Antwort
    1
    • L legro

      Mittlerweile habe ich unsere Visualisierung zum dritten Mal überarbeitet. Herausgekommen ist u.a. dabei eine View mit vier Ansichten: Kosten, Energie (AC), Quoten und Energie (DC).

      2fdb1b5d-2211-4056-bbb9-77e962e91b78-image.jpeg
      93b7004b-7ecb-40b4-9735-d79b5792a8ff-image.jpeg

      19722fdb-82c7-44e1-8651-c45b78c6d234-image.jpeg

      Die Berechnung der Quoten (Autarkie und Eigenverbrauch) habe ich aus den Daten der AC-Werte errechnet; diese sind somit echte Werte, nicht etwa die etwas geschönten aus der App, die auf den DC-Werten basieren. Der Gesamtwirkungsgrad (AC/DC) beinhaltet somit alle Verluste aus DC->AC Wandlung und in/aus Batterie. Da bei uns nur ein geringer Teil der Energie in der Batterie zwischengespeichert wird, ist der Wirkungsgrad mit über 91% recht hoch.

      Die in den Views angegebenen Wirkungsgrade beruhen ebenfalls auf AC-Werten. Sie basieren aus mittlerweile über drei Jahre gesammelten Daten.

      In den Zeilen 71 bis 78 findet man die Berechnung der Werte für Autarkie und Eigenquote. Die verwendeten Daten stammen zwar aus den ECharts-Diagrammen (s. FlexCharts-Adapter von @jrbwh ), aber ihre Herkunft findet man in den Zeilen 53 - 69 erläutert.

      Bei weiteren Fragen - insbesondere zu dem im Skript nicht dokumentierten Programmcode - helfe ich gerne weiter.

      function getAktMonthYear() {
          return {
              month: G_getMonthAsNumber(getState('0_userdata.0.Fronius.flexCharts.selMonth').val),
              year: getState('0_userdata.0.Fronius.flexCharts.selYear').val
              }
      }
      
      function checkTarifStrom(d) {
          let arr = JSON.parse(getState('0_userdata.0.Energie_Tarife.Strom.StromBezug').val)
          for(let i=0; i<arr.length; i++) {
              if(new Date(arr[i].Zeitraum.Start) <= d && d <= new Date(arr[i].Zeitraum.Ende)) {
                  return {Verkaufspreis: arr[i].Verkaufspreis, Energiepreis: arr[i].Energiepreis}
              }
          }
          return 0
      }
      //############################ chartEnergieYear: Monatsenergien ############################
      
      
      function refreshYear() {
      
          let aktYear = getState('0_userdata.0.Fronius.flexCharts.selYear').val
          let dataMonths = []
      
          //Diagramm Energien in KWh im RAM allokieren
          let jsonChartKWh = '0_userdata.0.Fronius.flexCharts.chartEnergieYear'
          let yearChartKWh = JSON.parse(getState(jsonChartKWh).val)
          //Diagramm Autarkie&Effizienz in % im RAM allokieren
          let jsonChartAutPrc = '0_userdata.0.Fronius.flexCharts.chartEffienzYear'
          let yearChartAutPrc = JSON.parse(getState(jsonChartAutPrc).val)
          //Diagramm Kosten im RAM allokieren
          let jsonChartKosten = '0_userdata.0.Fronius.flexCharts.chartKostenYear'
          let yearChartKosten = JSON.parse(getState(jsonChartKosten).val)
          //Diagramm Energie DC im RAM allokieren
          let jsonChartYearDC = '0_userdata.0.Fronius.flexCharts.chartYearDC'
          let yearChartDC = JSON.parse(getState(jsonChartYearDC).val)
      
          yearChartKWh.series[0].data = []  //fromGridKWh
          yearChartKWh.series[1].data = []  //toGridKWh
          yearChartKWh.series[2].data = []  //fromSolarKWh (Eigenverbrauch)
      
          yearChartAutPrc.series[0].data = [] //Autarkie
          yearChartAutPrc.series[1].data = [] //Eigenverbrauch
      
          yearChartKosten.series[0].data = [] //fromGridEuro
          yearChartKosten.series[1].data = [] //toGridEuro
          yearChartKosten.series[2].data = [] //EigenverbrauchEuro
      
          yearChartDC.series[0].data =[] //dcGartenhaus
          yearChartDC.series[1].data =[] //dcTerrasse
      
          for (let i=1;i<13;i++) {
              //Monatstarif - Der Stromtarif ändert sich nur zum Monatswechsel
              let tarif = checkTarifStrom(new Date(`${aktYear}-('0'+ ${('0' + i).slice(-2)}-15`))
      
              //fromGrid
              let fromGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.fromGridWh`).val)
              yearChartKWh.series[0].data.push(G_runden(fromGridKWh.reduce((sum, item) => sum + item, 0) / 1000,3))
              yearChartKosten.series[0].data.push(G_runden(tarif.Energiepreis * yearChartKWh.series[0].data[i-1],3))        
      
              //toGrid
              let toGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.toGridWh`).val)
              yearChartKWh.series[1].data.push(G_runden(toGridKWh.reduce((sum, item) => sum + item, 0) / 1000,3))
              yearChartKosten.series[1].data.push(G_runden(tarif.Verkaufspreis * yearChartKWh.series[1].data[i-1],3))
      
              //fromSolar bzw. Eigenverbrauch
              let fromSolarKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.solarWh`).val)
              yearChartKWh.series[2].data.push(G_runden(fromSolarKWh.reduce((sum, item) => sum + item, 0) / 1000 - yearChartKWh.series[1].data[i-1],3))
              yearChartKosten.series[2].data.push(G_runden(tarif.Energiepreis * yearChartKWh.series[2].data[i-1],3))
      
              //Autarkie
              let gesamtVerbrauch = yearChartKWh.series[0].data[i-1] + yearChartKWh.series[2].data[i-1]
              let eigenVerbrauch = yearChartKWh.series[2].data[i-1]
              let autarkieQuote = eigenVerbrauch / gesamtVerbrauch
              let gesamtSolar = yearChartKWh.series[2].data[i-1] + yearChartKWh.series[1].data[i-1]
              let eigenQuote = eigenVerbrauch / gesamtSolar
              yearChartAutPrc.series[0].data.push(G_runden(100*autarkieQuote,2))
              yearChartAutPrc.series[1].data.push(G_runden(100*eigenQuote,2))
      
              //Energien DC
              let dcGartenhausKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.dcGartenhausKWh`).val)
              dcGartenhausKWh ||= []
              yearChartDC.series[0].data.push(G_runden(dcGartenhausKWh.reduce((sum, item) => sum + item,0) / 1000,3))
              let dcTerrasseKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktYear}.${G_getMonthLongName(i)}.dcTerrasseKWh`).val)
              dcTerrasseKWh ||= []
              yearChartDC.series[1].data.push(G_runden(dcTerrasseKWh.reduce((sum, item) => sum + item,0) / 1000,3))
      
          }
      
          //Jahresummen
          // - fromGrid
          let fromGridKWhJahressumme = yearChartKWh.series[0].data.reduce((sum, item) => sum + item, 0)
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrFromGridKWh', fromGridKWhJahressumme, true)
          let fromGridEuroJahressumme = yearChartKosten.series[0].data.reduce((sum, item) => sum + item, 0)
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrFromGridEuro', fromGridEuroJahressumme, true)
      
          // - toGrid
          let toGridKWhJahressumme = yearChartKWh.series[1].data.reduce((sum, item) => sum + item, 0)
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrToGridKWh', toGridKWhJahressumme, true)
          let toGridEuroJahressumme = yearChartKosten.series[1].data.reduce((sum, item) => sum + item, 0)
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrToGridEuro', toGridEuroJahressumme, true)
      
          // - eigenverbrauch
          let eigenverbrauchKWhJahressumme = yearChartKWh.series[2].data.reduce((sum, item) => sum + item, 0)
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrEigenverbrauchKWh', eigenverbrauchKWhJahressumme, true)
          let eigenverbrauchEuroJahressumme = yearChartKosten.series[2].data.reduce((sum, item) => sum + item, 0)
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrEigenverbrauchEuro', eigenverbrauchEuroJahressumme, true)
          //Gesamtverbrauch
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrKonsumKWh', eigenverbrauchKWhJahressumme + fromGridKWhJahressumme, true)
          setStateAsync('0_userdata.0.Fronius.flexCharts.summeJahrKonsumEuro', eigenverbrauchEuroJahressumme + fromGridEuroJahressumme, true)
      
          //Titelzeilen
          yearChartKWh.title.text = 'elektrische Energien in ' + aktYear
          yearChartKosten.title.text = 'Energienkosten in ' + aktYear
          yearChartAutPrc.title.text = 'Autarkie/Eigenquoten in ' + aktYear
          yearChartDC.title.text = 'elektrische Energie DC in ' + aktYear
          //x-Achse beschriften
          yearChartKWh.xAxis[0].data = Array.from({length: 12}, (tmp,i) => G_shrtMonths[i])
          //yearChartKWh.xAxis[0].data = Array.from({length: 12}, (tmp,i) => i+1)
      
          //Diagrammm als JSON im Objektbaum ablegen
          setState(jsonChartKWh,JSON.stringify(yearChartKWh),true)
          setState(jsonChartAutPrc,JSON.stringify(yearChartAutPrc),true)
          setState(jsonChartKosten,JSON.stringify(yearChartKosten),true)
          setState(jsonChartYearDC,JSON.stringify(yearChartDC),true)
      
      }
      
      
      //############################ chartEnergieMonth : Tagesenergien ############################
      
      
      function refreshMonth() {
      
          let aktMonthYear = getAktMonthYear()
          let tarif = checkTarifStrom(new Date(`${aktMonthYear.year}-('0'+ ${('0' + aktMonthYear.month).slice(-2)}-15`))
      
          //Diagramm Energien in KWh im RAM allokieren
          let jsonChartKWh = '0_userdata.0.Fronius.flexCharts.chartEnergieMonth'
          let monthChartKWh = JSON.parse(getState(jsonChartKWh).val)
          //Diagramm Autarkie&Effizienz in % im RAM allokieren
          let jsonChartAutPrc = '0_userdata.0.Fronius.flexCharts.chartEffizienzMonth'
          let monthChartAutPrc = JSON.parse(getState(jsonChartAutPrc).val)
          //Diagramm Kosten in € im RAM allokieren
          let jsonChartKosten = '0_userdata.0.Fronius.flexCharts.chartKostenMonth'
          let monthChartKosten = JSON.parse(getState(jsonChartKosten).val)
          //Diagramm Energie DC im RAM allokieren
          let jsonChartMonthDC = '0_userdata.0.Fronius.flexCharts.chartMonthDC'
          let monthChartDC = JSON.parse(getState(jsonChartMonthDC).val)
          
          //Tabelle fromGridKWh in KWh im RAM allokieren
          let fromGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.fromGridWh`).val)
          fromGridKWh = fromGridKWh.map(item => item / 1000)
          //Tabelle toGridKWh in KWh im RAM allokieren
          let toGridKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.toGridWh`).val)
          toGridKWh = toGridKWh.map(item => G_runden(item/1000,3))
          let fromSolarKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.solarWh`).val) 
          fromSolarKWh = fromSolarKWh.map(item => item / 1000) //erzeugte Solarenergie AC
          //Tabelle eigenVerbrauch
          let eigenVerbrauchKWh = fromSolarKWh.map((item, i) => G_runden(item - toGridKWh[i],3)) //Eigenverbrauch AC
          let gesamtVerbrauchKWh = eigenVerbrauchKWh.map((item, i) => G_runden(item + fromGridKWh[i],3)) //Gesamtverbrauch AC
      
          //Tabelle dcGartenhausKWh und dcTerrasseKWh in KWh im RAM allokieren
          let dcGartenhausKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.dcGartenhausKWh`).val)
          dcGartenhausKWh ||= []
          dcGartenhausKWh = dcGartenhausKWh.map(item => G_runden(item / 1000,3))
          let dcTerrasseKWh = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${aktMonthYear.year}.${G_getMonthLongName(aktMonthYear.month)}.dcTerrasseKWh`).val)
          dcTerrasseKWh ||= []
          dcTerrasseKWh = dcTerrasseKWh.map(item => G_runden(item / 1000,3))
      
          //Energiesummen
          // - fromGrid
          let fromGridKWhSum = fromGridKWh.reduce((sum, item) => sum + item, 0)
          let fromGridEuroSum = fromGridKWhSum * tarif.Energiepreis
          // - toGrid
          let toGridKWhSum = toGridKWh.reduce((sum, item) => sum + item, 0)
          let toGridEuroSum = toGridKWhSum * tarif.Verkaufspreis
          // - Eigenverbrauch    
          let eigenverbrauchKWhSum = fromSolarKWh.reduce((sum, item) => sum + item) - toGridKWhSum
          let eigenverbrauchEuroSum = eigenverbrauchKWhSum * tarif.Energiepreis
          //Gesamtverbrauch bzw. Konsum
          let konsumKWhSum = fromGridKWhSum + eigenverbrauchKWhSum
          let konsumEuroSum = konsumKWhSum * tarif.Energiepreis
          //Energien DC
      
      
          //Summen in Objekte Speichern
          // - fromGrid
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatFromGridKWh',fromGridKWhSum,true)
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatFromGridEuro',fromGridEuroSum,true)
          // - toGrid
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatToGridKWh',toGridKWhSum,true)
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatToGridEuro',toGridEuroSum,true)
          // - Eigenverbrauch
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatEigenverbrauchKWh',eigenverbrauchKWhSum,true)
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatEigenverbrauchEuro',eigenverbrauchEuroSum,true)
          // - Konsum
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatKonsumKWh',konsumKWhSum,true)
          setStateAsync('0_userdata.0.Fronius.flexCharts.sumMonatKonsumEuro',konsumEuroSum,true)
      
          //Titelzeilen
          //Energien AC
          monthChartKWh.title.text = 'elektrische Energien im '
          monthChartKWh.title.text = (aktMonthYear.month == 3) ? monthChartKWh.title.text.concat('März') : monthChartKWh.title.text.concat(G_getMonthLongName(aktMonthYear.month))
          monthChartKWh.title.text = monthChartKWh.title.text.concat(' (' + aktMonthYear.year + ')')
          //Kosten
          monthChartKosten.title.text = 'Stromkosten im '
          monthChartKosten.title.text = (aktMonthYear.month == 3) ? monthChartKosten.title.text.concat('März') : monthChartKosten.title.text.concat(G_getMonthLongName(aktMonthYear.month))
          monthChartKosten.title.text = monthChartKosten.title.text.concat(' (' + aktMonthYear.year + ')')
          //Quoten
          monthChartAutPrc.title.text = 'Autarkie&Eigenquote im '
          monthChartAutPrc.title.text = (aktMonthYear.month == 3) ? monthChartAutPrc.title.text.concat('März') : monthChartAutPrc.title.text.concat(G_getMonthLongName(aktMonthYear.month))
          monthChartAutPrc.title.text = monthChartAutPrc.title.text.concat(' (' + aktMonthYear.year + ')')
          //Energien DC
          monthChartDC.title.text = 'elektrische Energien DC im '
          if (aktMonthYear.month == 3) {
              monthChartDC.title.text = monthChartDC.title.text + 'März'
          } else {
              monthChartDC.title.text = monthChartDC.title.text + G_getMonthLongName(aktMonthYear.month)
          }
          monthChartDC.title.text = monthChartDC.title.text +' (' + aktMonthYear.year + ')'
          //x-Achse beschriften
          //x-Achse
          monthChartKWh.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
          monthChartKosten.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
          monthChartAutPrc.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
          monthChartDC.xAxis[0].data = Array.from({length: G_getDaysOfMonth(aktMonthYear.year, aktMonthYear.month)}, (tmp,i) => i+1)
          //y-Achsenwerte eintragen ..
          //Netzbezug, Einspeisung, Eigenverbrauch
          monthChartKWh.series[0].data = fromGridKWh
          monthChartKWh.series[1].data = toGridKWh
          monthChartKWh.series[2].data = eigenVerbrauchKWh
          //Kosten: Netzbezug, Einspeisung, Eigenverbrauch
          monthChartKosten.series[0].data = fromGridKWh.map((item,i) => item * tarif.Energiepreis)
          monthChartKosten.series[1].data = toGridKWh.map((item,i) => item * tarif.Verkaufspreis)
          monthChartKosten.series[2].data = eigenVerbrauchKWh.map((item,i) => item * tarif.Energiepreis)
          //Autarkie&Eigenverbrauch
          monthChartAutPrc.series[0].data = eigenVerbrauchKWh.map((item, i) => G_runden(100*item / gesamtVerbrauchKWh[i],1)) //Autarkie
          monthChartAutPrc.series[1].data = eigenVerbrauchKWh.map((item,i) => G_runden(100*item / fromSolarKWh[i],1)) //Eigenquote
      
          //Energien DC
          monthChartDC.series[0].data = dcGartenhausKWh
          monthChartDC.series[1].data = dcTerrasseKWh
      
      
          //Diagrammme als JSON im Objektbaum ablegen
          setState(jsonChartKWh,JSON.stringify(monthChartKWh),true)
          setState(jsonChartKosten,JSON.stringify(monthChartKosten),true)
          setState(jsonChartAutPrc,JSON.stringify(monthChartAutPrc),true)
          setState(jsonChartMonthDC,JSON.stringify(monthChartDC),true)
      }
      
      
      //############################ Scheduler & Trigger ############################
      
      
      //alle 4 Minuten die Anzeige aktualisieren
      
      schedule('*/4 * * * *', () => {
          refreshMonth(); refreshYear()
          setState('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
      });
      
      on({id:'0_userdata.0.Fronius.flexCharts.selMonth',change: 'any'},(obj) => {
          refreshMonth()
          setState('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
      })
      
      on({id:'0_userdata.0.Fronius.flexCharts.selYear',change: 'any'},(obj) => {
          //G_setListYears('0_userdata.0.Fronius.Monatstabellen', '0_userdata.0.Fronius.Charts.lstYears')
          setStateAsync('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
          G_setListMonths(getState('0_userdata.0.Fronius.flexCharts.selYear').val, '0_userdata.0.Fronius.Monatstabellen',
              '0_userdata.0.Fronius.flexCharts.lstMonths')
          refreshYear(); refreshMonth()
          setState('0_userdata.0.Fronius.flexCharts.rfhButton', 0, false)
      })
      
      on({id:'0_userdata.0.Fronius.flexCharts.buttonAktualisieren',change: 'any'},(obj) => {
          refreshMonth(); refreshYear()
          setState('0_userdata.0.Fronius.flexCharts.rfhButton',0,false)
      })
      
      
      //############################ Skriptstart ############################
      
      //listMonths des zugehörigen DropDown-Widgets füllen
      G_setListYears('0_userdata.0.Fronius.Monatstabellen', '0_userdata.0.Fronius.flexCharts.lstYear')
      //listYears des zugehörigen DropDown-Widgets füllen
      G_setListMonths(getState('0_userdata.0.Fronius.flexCharts.selYear').val, '0_userdata.0.Fronius.Monatstabellen',
          '0_userdata.0.Fronius.flexCharts.lstMonths')
      
      NegaleinN Offline
      NegaleinN Offline
      Negalein
      schrieb am zuletzt editiert von
      #239

      @legro sagte:

      insbesondere zu den im Skript

      von wo bekommst du die Daten?
      Ich seh bei dir nur 0_userdata.0.Fronius

      ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
      ° Node.js Fixer ---> iob nodejs-update
      ° Fixer ---> iob fix

      L 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        @legro sagte:

        insbesondere zu den im Skript

        von wo bekommst du die Daten?
        Ich seh bei dir nur 0_userdata.0.Fronius

        L Offline
        L Offline
        legro
        schrieb am zuletzt editiert von legro
        #240

        @Negalein sagte:

        von wo bekommst du die Daten?
        Ich seh bei dir nur 0_userdata.0.Fronius

        Die Daten stammen aus meinen in diesem Thread zuvor beschriebenen Monatstabellen. Hier findest du beschrieben, wie sie gefüllt werden können. Die Daten selbst werden dem Modbus-Adapter entnommen.

        Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

        NegaleinN 1 Antwort Letzte Antwort
        0
        • L legro

          @Negalein sagte:

          von wo bekommst du die Daten?
          Ich seh bei dir nur 0_userdata.0.Fronius

          Die Daten stammen aus meinen in diesem Thread zuvor beschriebenen Monatstabellen. Hier findest du beschrieben, wie sie gefüllt werden können. Die Daten selbst werden dem Modbus-Adapter entnommen.

          NegaleinN Offline
          NegaleinN Offline
          Negalein
          schrieb am zuletzt editiert von
          #241

          @legro sagte:

          Die Daten stammen aus meinen in diesem Thread zuvor beschriebenen Monatstabelle

          ah, du holst sie mit Modbus ab.
          Das muss ich mir jetzt auch endlich mal anschaun.

          ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
          ° Node.js Fixer ---> iob nodejs-update
          ° Fixer ---> iob fix

          1 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            legro
            schrieb am zuletzt editiert von
            #242

            So siehst meine dazugehörige Objekt-Struktur aus ..

            5ea13e8f-e454-4e8d-9556-163262e4003c-image.jpeg

            Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

            L 1 Antwort Letzte Antwort
            0
            • L legro

              So siehst meine dazugehörige Objekt-Struktur aus ..

              5ea13e8f-e454-4e8d-9556-163262e4003c-image.jpeg

              L Offline
              L Offline
              legro
              schrieb am zuletzt editiert von legro
              #243

              Die Datenpunkte enthalten Arrays mit den Tageswerten.

              Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

              1 Antwort Letzte Antwort
              0
              • NegaleinN Offline
                NegaleinN Offline
                Negalein
                schrieb am zuletzt editiert von
                #244

                so schaut derzeit mein Grafana Dashboard aus.
                Daten aus dem Autarkie-Script und dem Solarweb-Adapter

                1f356a4b-9bbe-443d-8267-4df550b95c85-image.jpeg

                ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                ° Node.js Fixer ---> iob nodejs-update
                ° Fixer ---> iob fix

                1 Antwort Letzte Antwort
                0
                • NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  schrieb am zuletzt editiert von
                  #245

                  @tombox

                  Ich hab Solarweb Premium und bekomm seitdem diese Errors im Log.

                  2026-06-18 00:00:22.122 - error: fronius-solarweb.0 (152734) https://swqapi.solarweb.com/pvsystems/xxxxxxxxxxxx/weather/energyforecast?from=1781647204013&to=1781733599013
                  2026-06-18 00:00:22.125 - error: fronius-solarweb.0 (152734) AxiosError: Request failed with status code 404
                  2026-06-18 00:00:22.125 - error: fronius-solarweb.0 (152734) {"responseError":1002,"responseMessage":"Requested resource not found."}
                  

                  ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                  ° Node.js Fixer ---> iob nodejs-update
                  ° Fixer ---> iob fix

                  T 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @tombox

                    Ich hab Solarweb Premium und bekomm seitdem diese Errors im Log.

                    2026-06-18 00:00:22.122 - error: fronius-solarweb.0 (152734) https://swqapi.solarweb.com/pvsystems/xxxxxxxxxxxx/weather/energyforecast?from=1781647204013&to=1781733599013
                    2026-06-18 00:00:22.125 - error: fronius-solarweb.0 (152734) AxiosError: Request failed with status code 404
                    2026-06-18 00:00:22.125 - error: fronius-solarweb.0 (152734) {"responseError":1002,"responseMessage":"Requested resource not found."}
                    
                    T Offline
                    T Offline
                    tombox
                    schrieb am zuletzt editiert von
                    #246

                    @Negalein teste mal GitHub version

                    NegaleinN 1 Antwort Letzte Antwort
                    0
                    • T tombox

                      @Negalein teste mal GitHub version

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      schrieb am zuletzt editiert von
                      #247

                      @tombox sagte:

                      teste mal GitHub version

                      Fehler bleibt

                      fronius-solarweb.0 2026-06-18 13:23:20.601	error	{"responseError":1001,"responseMessage":"Error while processing request."}
                      fronius-solarweb.0 2026-06-18 13:23:20.601	error	AxiosError: Request failed with status code 500
                      fronius-solarweb.0 2026-06-18 13:23:20.599	error	https://swqapi.solarweb.com/pvsystems/xxxxxxxxxxxx/weather/energyforecast?from=2026-06-19T00:00:00&to=2026-06-19T23:59:59&timezone=local
                      

                      ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                      ° Node.js Fixer ---> iob nodejs-update
                      ° Fixer ---> iob fix

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      302

                      Online

                      33.0k

                      Benutzer

                      83.3k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2026
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe