Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. StefanRied

    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

    S
    • Profile
    • Following 0
    • Followers 2
    • Topics 4
    • Posts 45
    • Best 6
    • Groups 1

    StefanRied

    @StefanRied

    7
    Reputation
    101
    Profile views
    45
    Posts
    2
    Followers
    0
    Following
    Joined Last Online

    StefanRied Follow
    Starter

    Best posts made by StefanRied

    • RE: Influxdb adapter: storeState function

      Solved - Gelöst

      Der iobroker influx Adapter scheint nicht wirklich zu helfen um irgend was in die Influx zu schreiben. Deshalb nutze ich jetzt direkt die Influx client lib. Das Beispiel schreibt zwei Records, ließt sie wieder und druckt sie aus. ...

      const Influx = require('influx');
       const influx = new Influx.InfluxDB({
       host: '127.0.0.1',
       database: 'iobroker' 
       /* ,
       schema: [
         {
           measurement: 'StromPreis2',
           fields: {
             preis_brutto: Influx.FieldType.STRING,
             preis_netto: Influx.FieldType.STRING
           },
           tags: ['host']
         }
       ] */
      });
      
      
      influx.writePoints([  
          { measurement: 'StromPreis2', fields: { preis_brutto: '62', preis_netto: '52'}, timestamp : 1422568543702910257  },
          { measurement: 'StromPreis2', fields: { preis_brutto: '42', preis_netto: '32'}, timestamp : 1422568543702900250  }
      ]).then(() => {
        return influx.query(`select * from StromPreis2`) 
        }).then(rows => {
        rows.forEach(row => console.log(`Strompreis ${row.preis_brutto} / ${row.preis_netto}`))
      })
      

      Das Schema kann man explizit machen wie üblich.

      PS: Das "influxdb" modul muss im Javascript Adapter unter "Zusätzliche NPM-Module" eingetragen sein.

      posted in ioBroker Allgemein
      S
      StefanRied
    • Influx-->JSON-->Chart Beispiel

      @cmorlok @Scrounger
      Hallo,
      ich habe grade JSON Charts für mich entdeckt.
      Extrem cool. Ich habe in einem Influx Measurement den aktuellen Strompreis-Forecast liegen. Der kommt immer um 14 Uhr für den nächsten Tag von 0 bis 24 Uhr raus. Für die Leute die wie ich einen hourly Tarif https://www.awattar.de/ haben die Entscheidung, wann man den Stromflitzer aufladen läßt, wenn die Sonne nicht scheint.
      Das Chart hat also je nachdem, wann man drauf schaut eine andere Auflösung. Kurz vor 14 Uhr sind nur noch werte von 14 Uhr bis 23 Uhr des aktuellen Tages drin. Kurz nach 14 Uhr dann eben die 24 neue Stundentarife für den folgenden Tag. Man will nie abgelaufene Preise sehe, es ist ja ein Forecast.
      Das habe ich nicht mit Grafana oder eCharts auf ioBroker hin bekommen.

      Das Chart soll also immer von den Strompreis von jetzt bis zum Ende der Datenbank anzeigen. In SQL recht einfach:

      select * from StromPreis WHERE time > now() - 1h 
      

      Weil ich auch in https://forum.iobroker.net/topic/31871/material-design-widgets-json-chart-widget/39 kaum gute Beispiele gefunden habe, wie man die JSONs für JSON-Charts zusammen baut, möchte ich den Code einfach mal posten. Viel Spaß beim Jonglieren mit JSON Objekten ...

      // Influx im iobroker
      const Influx = require('influx');
      const influx = new Influx.InfluxDB({
          host: '127.0.0.1',
          database: 'iobroker' 
        });
      
      // Das beschreibt das Chartaussehen
      var myChart =  {"graphs":[
          {"type":"bar",
           "color":"#FF0000",
           "legendText": "ct/kWh",
           "yAxis_id":0,"line_UseFillColor":true,"displayOrder":0,
           "line_Thickness":2,"line_pointSize":0,
           "datalabel_show":false,"yAxis_min":10,"yAxis_max":55,"yAxis_zeroLineWidth":0,"xAxis_bounds":"ticks",
          "xAxis_timeFormats":{"millisecond":"H:mm:ss.SSS","second":"H:mm:ss","minute":"H","hour":"dd.[\\n]H",
          "day":"dd[\\n]DD",
          "week":"dd[\\n]DD.MM","month":"MMM[\\n]YYYY","quarter":"[Q]Q - YYYY","year":"YYYY"}, data:[]
      }]}
      
      // Hier kommen alle Daten aus der InfluxDB und laden im data segment des ChartJSONs
      
      await influx.query(`select * from StromPreis WHERE time > now() - 1h limit 48;`).
          then((rows) => {
              myChart.graphs[0].data = rows;
          }).
          catch(err => { console.log(`Error query InfluxDB! ${err.stack}`) });  
      
      // Hier gehe ich nochmal schnell durch das data array und benenne die felder so um das JSONCharts 
      // die daten in t und y findet. Alle anderen Felder die aus dem Query kommen löschen. Man könnte natürlich auch 
      // Labels im Influx query nehmen um das zu fixen.
      
      myChart.graphs[0].data.forEach(data => {
                  data.t = data.time; 
                  delete data.time;
                  data.y = data.preis_brutto; 
                  delete data.preis_netto; delete data.preis_brutto; 
              })
      
      // console.log(myChart);
      // Und das ganze auf den State schreiben der im VIS als ID zum JSONChart eingetragen ist. Fertig und echt Mega-Cool :)
      setState("0_userdata.0.StromManagement.Chart",myChart);
      
      

      Bildschirmfoto 2021-10-27 um 17.18.20.png

      posted in Visualisierung
      S
      StefanRied
    • RE: DIY Batteriespeicher mit Sungrow

      @stefanried kleines Update:
      Das REC BMS rennt jetzt bei mir mit einer Beta version von REC.
      Es gibt noch eine kleine Macke, aber grundsätzlich ist das System schon mal seit Tagen sehr stabil.

      2x10kWh Batterie-Module aus dem Daimler EQC
      1xSungrow SH10RT
      1x REC Master BMS
      3x REC Slave BMS

      Ich melde mich wieder wenn es fertig ist.
      Dann freue ich mich auf die iobroker Anbindung. Herzlichen Dank schon mal an alle die sich mit den Holding-Registern auseinander gesetzt haben.

      Bildschirmfoto 2022-12-13 um 13.21.29.png

      posted in Praktische Anwendungen (Showcase)
      S
      StefanRied
    • RE: Test Tesla-Motors v1.0.0

      @darkbrain85 said in Test Tesla-Motors v1.0.0:

      Bei dem "alten" Adapter war es so, dass die änderbaren States direkt auch beschrieben werden konnten. Nun habe ich ja einen State für den Status, einen anderen für das setzen. Z.b. beim Ladelimit ist das relativ schlecht mit einem Slider in VIS umsetzbar. Ist das Absicht, oder sehe ich den Wald vor lauter Bäumen gerade nicht?

      Im Sinne eines Digitalen Zwillings ist das so eigentlich viel besser wie es jetzt ist. Ein Remote Command ist eigentlich ein State-Charge-Request auf dem Device, erst der Response von vehicle_data, dass die Änderung tatsächlich angekommen ist, ist der eigentliche remote-state-change und stellt sicher, dass es auch auch geändert wurde.

      Bei einigen Dinge wie dem Ladestrom kann das ja deutlich unterschiedlich. Du kannst also 16Amp wünschen, wenn Du aber nur an einer schwachen Leitung (Schuko Steckdose) hängst bietet die EVSE (hoffentlich) nur 13 Amp an, das Auto sagt dann korrekt, dass es auf 13 geht und nicht auf 16.

      Also bin ich dafür es nicht zu vermischen wie beim alten Adapter.
      Denkt auch an die Autos die nicht zuhause im Wifi stehen. Bei schlechter Connectivity kann es schon sein, dass Minuten vergehen zwischen dem Change-Request und der Delivery ans Fahrzeug und dann der Response. Wenn Du die States direkt überschreiben würdest, wäre das ganze Battery&Lade Logging nicht mehr korrekt.

      posted in Tester
      S
      StefanRied
    • RE: DIY Batteriespeicher mit Sungrow

      @twiker @Foxy99
      Moin,

      super, dass immer mehr Leute sich an "Hochvolt-Batterien" trauen. Da mache ich gerne mit bzw. bringe meine Erfahrungen ein.

      Ich habe mir auch grade einen Speicher aus eAuto Batterien und dem REC BMS passend zu dem Sungrow SH10RT gebaut und mich deshalb damit beschäftigt. (LGChem 40kWh Li-MNC aus dem Daimler EQC).

      Sehr wahrscheinlich sucht ihr erst einmal dieses Protocol:
      https://onlineshop.gcsolar.co.za/wp-content/uploads/2021/07/CAN-Bus-Protocol-Sermatec-high-voltage-V1.1810kW.pdf

      Es ist das CAN Hochvoltbatterien Protokoll, dass auch die Pylontech Hochvolt Batterien (SC1000 und SC0500) implementiert haben und der Sungrow SHxxRT versteht.

      Ich persönlich finde es etwas sicherheitskritisch das BMS über den iobroker mit den Sungrow Wechselrichter zu verbinden. Hoffentlich hat Euer BMS auch Sicherheitsmechanismen und hoffentlich einen Schütz, der bei Überladung öffnet.... Ich bin ein Riesen IOBroker-Fan, aber denke iobroker ist nicht das richtige für sicherheitsrelevante Steuerungen! Man kommt ja auch nicht auf die Idee die Einspritzpumpe eines Ölbrenners mit IOBroker zu steuern.

      Für mich muss ein BMS direkt via CAN mit dem Wechselrichter sprechen. Ohne eine IP Strecke dazwischen. Alles muss mit max 200ms reagieren. IP Netze können ausfallen. Ein brennende Batterie will keiner.

      Leider gibt es im Moment kein BMS für DIY Batterien das Out-Of-The-Box das Hochvolt-CAN Protokoll unterstützt. Man könnte es mit dem Orion BMS2 konfigurieren, dass in vielen Autos und im Sonderfahrzeugbau verwendet wird. (https://evshop.eu/en/bms/275-180-kit-standard-orion-2-bms.html) Das hat aber nur 250mA Regeleingriff.

      Das beste BMS für solche Konfigurationen ist meiner Meinung nach das REC-Master Slave https://www.rec-bms.com/wp-content/uploads/2021/04/UserManual_REC_MS.pdf das auch für 1000V zugelassen ist und 1 A Regel-Eingriff hat. Damit halten LiFePO oder LiMNC Batterien 30 Jahre wenn man sie nicht zu sehr stresst.

      Leider mann man den CAN Master Controller von REC nicht selbst programmieren. Ich habe deshalb mit den Entwicklungsleiter von REC Kontakt aufgenommen und ihm angeboten auf meiner Sungrow-REC Konfiguration zu testen. Er will in den nächsten Wochen die Firmware entsprechend schreiben. Es ist der gleiche der auch die 48V Version des CAN Protocols geschrieben hat. Deshalb bin ich zuversichtlich.

      Natürlich kann man das REC und den Sungrow nachher wieder zum monitoren in iobroker bringen. Bei mir wird das auch passieren und der iobroker wird den Tesla Ladestrom steuern und einen Solar-Heizstab einschalten, wenn PV Leistung übrig ist usw. Aber das ist alles außerhalb des sicherheitskritischen Wechselrichter-BMS Kreises.

      Sobald das BMS richtig mit dem Wechselrichter läuft, hat man eine reliable connection die auch auf alle Ausnahmesituationen getestet ist. Falls man das im iobroker abbildet, denkt bitte unbedingt daran diese Emergency Situationen zu testen:

      1. BMS sagt SOC 100%, Wechselrichter (kaputt) lädt trotzdem weiter, was passiert?
      2. BMS sagt SOC <5%, Wechselrichter (kaputt) entlädt trotzdem weiter, was passiert?
      3. Temperatur in der Batterie ist zu hoch, Wechselrichter muss aus gehen ---> bei mir geht das sofort der Schütz zur Batterie auf und mein Handy klingelt.
      4. BMS sagt ok, aber findet Wechselrichter nicht --> Alarm - defekten Wechselrichter checken. Möglicherweise Blitzschlag.
      5. Sungrow ok, aber BMS tod --> defektes BMS checken.
      6. CAN Kabel wird unterbrochen (controller können kaputt gehen) Anlage muss stehen bleiben.
      7. BMS wünscht sich einen kleineren Ladestrom - Sungrow muss reagieren, wenn nicht, Schütz auf! Achtung, die Wechselrichter machen einfach weiter, wenn sie nicht gestoppt werden. Das ist #1 Grund für Solar-Batterie-Brände.
      8. Was ist mit den ganzen Grid-On/Off Szenarien? Nicht nur das BMS sondern auch der ganze iobroker muss dann auf der USV sein, oder sicher wieder hoch starten.
      9. Darkstart - also das Szenario wenn bei einem Stromausfall die Batterie komplett leer ist, das System runter fährt, und dann am nächsten Tag wieder Sonne kommt. Wie startet das alles wieder hoch?

      Man sieht da ist eine Menge zu tun, bzw. wurde von REC schon für 48V getan. Das wird dann auch alles wieder für Hochvolt gehen.

      Ich werde berichten wie mein Projekt weitergeht.

      Grüße
      Stefan

      PS: Ich hoffe alle hier, kennen sich mit Hochvolt-Batterien aus und schalten nicht einfach 5 mal 48V Batterien in Serie. Die Batterie muss als Hochvoltbatterie gebaut sein und 1000V Spannungsfest zu ihrem geerdeten Gehäuse sein.... usw.
      Wenn alles läuft poste ich eine komplette Bauanleitung mit den wichtigsten Sicherheitstipps.

      posted in Praktische Anwendungen (Showcase)
      S
      StefanRied
    • RE: DIY Batteriespeicher mit Sungrow

      @stefanried Von REC gibt es jetzt eine fertige Firmware, die bei mir stabil mit Hochvolt-Wechselrichtern läuft. REC BMS Hardware ist zwar nicht ganz billig, aber es ist in meinen Augen das beste BMS um aus Elektro-Auto Batterien einen professionellen Stationärspeicher zu machen, der zuverlässig direkt mit dem Wechselrichter spricht. Bitte beim Händler nach der wirklich aktuellen Firmware fragen (version von heute!).

      https://www.rec-bms.com/where-to-buy/

      Ich hoffe ich komme über Weihnachten dazu ein youtube über das Projekt zu drehen....

      posted in Praktische Anwendungen (Showcase)
      S
      StefanRied

    Latest posts made by StefanRied

    • hm-rpc Unknown XML-RPC tag 'TITLE'

      Re: Probleme mit HomeMatic RPC

      Ich hatte das gleiche Problem, plötzlich ließ sich der hm-rpc nicht mehr zur CCU connecten und hat den Unknown XML-RPC tag 'TITLE' Fehler gemeldet.

      Danke für den Tipp weiter oben dass es an der CCU Firewall liegen könnte. Das CCU UI hatte mir angezeigt dass die Firewall abgeschaltet ist.

      Scheinbar hat das aber nicht gestimmt!
      Ich habe einfach alle Einstellungen ins Gegenteil gestellt (Ports blockiert, kein Zugriff) OK. Dann nochmal die Firewall Setting aufgerufen und alles wieder geöffnet. Dadurch hat das CCU UI scheinbar die Firewall Settings in der Linux-VM auf der mein RasberryMatic läuft, neu geschrieben und alles geht wieder!

      Ärgerliches Problem mit super einfachem Fix. Schönen Sonntag. 🙂

      Bildschirmfoto 2024-11-03 um 11.16.37.png

      posted in ioBroker Allgemein
      S
      StefanRied
    • RE: IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox

      @stefanried
      the issue is resolved.
      There was something wrong with files in the /etc/asterisk folder.

      Der folder stammt aus einer aktuellen 18.24.3 installation.
      Auf einem älteren iobroker war ein asterisk 16.2.1 mit dem es lief.
      Ich habe einfach alle files aus dem /etc/asterisk von der alten version auf die neu installiert und siehe da. das Problem war weg.

      posted in JavaScript
      S
      StefanRied
    • RE: IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox

      Moin

      der Thread ist zwar schon alt, aber vielleicht findet sich ja ein asterisk Profi der mir helfen kann.

      Ich habe den iobroker asterisk adapter auf einem anderen host wie den asterisk server und alles entsprechend https://github.com/schmupu/ioBroker.asterisk/blob/master/docs/SSH_DE.md eingerichtet.

      Der iobroker meldet sich korrekt am remote asterisk an und schickt auch via ssh/scp die generierten audio files rüber.

      Leider scheint dort irgend was mit er Konfiguration schief zu laufen.

      Der asterisk adapter im iobroker meldet dann "Originate failed:

      	Error while dialing (1). Error: {"response":"Error","actionid":"ee1bb6cf-1fe7-80ae-252c-8ba913a0d052","message":"Originate failed"}, Result: {"parameter":{"callerid":"**620","telnr":"017643282951","text":"Hallo!","extension":"Smarthome","audiofile":"/tmp//audio_1234","delete":"delete"},"options":{"action":"originate","channel":"SIP/Smarthome/1234","context":"ael-ansage","exten":"1234","priority":1,"timeout":60000,"variable":{"repeat":5,"file":"/tmp//audio_1234","del":"delete"},"callerid":"**620"},"guid":"ee1bb6cf-1fe7-80ae-252c-8ba913a0d052","result":{"response":"Error","actionid":"ee1bb6cf-1fe7-80ae-252c-8ba913a0d052","message":"Originate failed"}}
      

      Der asterisk sagt im debug mode dies:

      asterisk -rvvvvv
      Asterisk 18.24.3, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.
      Created by Mark Spencer <markster@digium.com>
      Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
      This is free software, with components licensed under the GNU General Public
      License version 2 and other licenses; you are welcome to redistribute it under
      certain conditions. Type 'core show license' for details.
      =========================================================================
      Connected to Asterisk 18.24.3 currently running on mediau (pid = 8597)
      mediau*CLI> core set debug 10
      Core debug was OFF and is now 10.
        == Manager 'manager' logged on from 10.0.0.3
      [Sep 21 13:23:14] WARNING[8682]: channel.c:6332 request_channel: No channel type registered for 'SIP'
          -- Executing [failed@ael-ansage:1] Answer("OutgoingSpoolFailed", "") in new stack
          -- Executing [failed@ael-ansage:2] Wait("OutgoingSpoolFailed", "1") in new stack
          -- Executing [failed@ael-ansage:3] Read("OutgoingSpoolFailed", "dtmf,/tmp//audio_1726924993523&beep,0,s,5,1") in new stack
          -- Executing [failed@ael-ansage:4] GotoIf("OutgoingSpoolFailed", "0?5:6") in new stack
          -- Goto (ael-ansage,failed,6)
          -- Executing [failed@ael-ansage:6] NoOp("OutgoingSpoolFailed", "Finish if_ael-ansage_1") in new stack
          -- Executing [failed@ael-ansage:7] Hangup("OutgoingSpoolFailed", "") in new stack
        == Spawn extension (ael-ansage, failed, 7) exited non-zero on 'OutgoingSpoolFailed'
          -- Executing [h@ael-ansage:1] GotoIf("OutgoingSpoolFailed", "1?2:4") in new stack
          -- Goto (ael-ansage,h,2)
          -- Executing [h@ael-ansage:2] NoOp("OutgoingSpoolFailed", "/bin/rm /tmp//audio_1726924993523.*") in new stack
          -- Executing [h@ael-ansage:3] System("OutgoingSpoolFailed", "/bin/rm /tmp//audio_1726924993523.*") in new stack
          -- Executing [h@ael-ansage:4] NoOp("OutgoingSpoolFailed", "Finish if_ael-ansage_2") in new stack
          -- Executing [h@ael-ansage:5] SayDigits("OutgoingSpoolFailed", "") in new stack
          -- Executing [h@ael-ansage:6] NoOp("OutgoingSpoolFailed", "Finish if_ael-ansage_1") in new stack
          -- Executing [h@ael-ansage:7] Hangup("OutgoingSpoolFailed", "") in new stack
        == Spawn extension (ael-ansage, h, 7) exited non-zero on 'OutgoingSpoolFailed'
      

      ich habe keine Ahnung was der Asterisk Channel ist, der hier fehlt.

      Meine sip.com

      [general]                               ; Do not change
      port = 5060                             ; Do not change
      bindaddr = 0.0.0.0                      ; Do not change
      context = default                       ; Do not change
      subscribecontext = default              ; Do not change
      
      
      register => 62162162:pw****@10.0.0.1/1000 ; Username, Password and IP address of Fritzbox WLAN/LAN telephone
      
      [62162162]             ; Change to username of Fritzbox WLAN/LAN telephone
      type = friend           ; Do not change
      username = 62162162  ; Change to username of Fritzbox WLAN/LAN telephone
      host = 10.0.0.1         ; Change hostname / IP address of Fritzbox
      secret = pw******      ; Change password of Fritzbox WLAN/LAN telephone
      fromdomain = 10.0.0.1 ; Change hostname / IP address of Fritzbox
      fromuser = 62162162    ; Change username of Fritzbox WLAN/LAN telephone
      context = default
      

      der 62162162 ist der username des SIP accounts in meine Fritzbox
      extentions.ael ist die oben beschrieben datei:

      context default {
      	1000 => {
              Goto(ael-antwort,s,1);
      	}
      }
      
      context ael-ansage {
      	_. => {
              Answer();
              Wait(1);
      		Read(dtmf,${file}&beep,0,s,${repeat},1);
      		if ("${dtmf}"  != "") {
      			SayDigits(${dtmf});
      		}
      		Hangup();
          }
      
      	h =>  {
      	if ("${del}" = "delete") {
      				NoOp(/bin/rm ${file}.*);
                      System(/bin/rm ${file}.*);
      		}
      	}	
      }
      
      context ael-antwort {
      	s  => {
      		Answer();
      		Wait(1);
      		Set(repeat=5);
      		Read(dtmf,/tmp//asterisk_dtmf&beep,0,s,${repeat},1);
      		if ("${dtmf}"  != "") {
      			SayDigits(${dtmf});
      		}
      		Hangup();
      	}
      
      	_.  => {
              Goto(ael-antwort,s,1);
      	}	
      }
      
      

      Die extenstions.conf ist der standard den die 1000 definiert

      ...
      exten => 1000,1,Goto(default,s,1)
      ...
      

      Irgend wie scheint in der asterisk config was faul zu sein.
      Kann jemand helfen?
      Lieben Dank
      Stefan

      posted in JavaScript
      S
      StefanRied
    • RE: vis von lesiflo (Tablet + Handy)

      Hi @lesiflo
      hast du deine tolle Arbeit inzwischen auf github?
      Würde mich auch sehr freuen deine Material Designs als Ausgangspunkt für meine nehmen zu können.
      Liebe Dank
      Stefan

      posted in Visualisierung
      S
      StefanRied
    • RE: Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

      hat sich erledigt

      posted in ioBroker Allgemein
      S
      StefanRied
    • RE: DIY Batteriespeicher mit Sungrow

      @blab1
      Hallo,

      ich wollte nur mal kurz einen Update geben. Das REC BMS läuft seit zwei Monaten stabil mit dem Sungrow Wechselrichter. Als Batterien kann man praktisch alles aus den aktuellen Elektro-Autos dran hängen, was man beim Großhändler kaufen kann.
      https://www.power-and-storage.de/ oder https://evshop.eu/

      Wenn man seine Anlage im www.marktstammdatenregister.de oder beim lokalen Netzbetreiber eingetragen hat, liefert beispielsweise Power-And-Storage das BMS und die Batterie-Module von Autos auch noch ohne UST/MwSt. !

      Bildschirmfoto 2023-02-28 um 09.47.59.png

      Der Sungrow hängt bei mir wie bei vielen mit dem TCP/IP Modbus am iobroker: https://forum.iobroker.net/topic/38441/sungrow-wr-sgh10rt-erfolgreich-mit-modbus-eingebunden/2

      Das REC-BMS selber hängt noch nicht direct am iobroker.
      Da das BMS alle wichtigen Daten an den WR über den CAN Bus weitergibt, brauche ich allerdings auch gar nicht direkt da drauf. Wenn ich mal Zeit habe mache ich es trotzdem um die einzelspannungen aus dem REC-BMS via iobroker in Influx zu schreiben....

      Wünsche einen sonnigen Tag

      posted in Praktische Anwendungen (Showcase)
      S
      StefanRied
    • RE: DIY Batteriespeicher mit Sungrow

      @stefanried Von REC gibt es jetzt eine fertige Firmware, die bei mir stabil mit Hochvolt-Wechselrichtern läuft. REC BMS Hardware ist zwar nicht ganz billig, aber es ist in meinen Augen das beste BMS um aus Elektro-Auto Batterien einen professionellen Stationärspeicher zu machen, der zuverlässig direkt mit dem Wechselrichter spricht. Bitte beim Händler nach der wirklich aktuellen Firmware fragen (version von heute!).

      https://www.rec-bms.com/where-to-buy/

      Ich hoffe ich komme über Weihnachten dazu ein youtube über das Projekt zu drehen....

      posted in Praktische Anwendungen (Showcase)
      S
      StefanRied
    • RE: DIY Batteriespeicher mit Sungrow

      @stefanried kleines Update:
      Das REC BMS rennt jetzt bei mir mit einer Beta version von REC.
      Es gibt noch eine kleine Macke, aber grundsätzlich ist das System schon mal seit Tagen sehr stabil.

      2x10kWh Batterie-Module aus dem Daimler EQC
      1xSungrow SH10RT
      1x REC Master BMS
      3x REC Slave BMS

      Ich melde mich wieder wenn es fertig ist.
      Dann freue ich mich auf die iobroker Anbindung. Herzlichen Dank schon mal an alle die sich mit den Holding-Registern auseinander gesetzt haben.

      Bildschirmfoto 2022-12-13 um 13.21.29.png

      posted in Praktische Anwendungen (Showcase)
      S
      StefanRied
    • RE: DIY Batteriespeicher mit Sungrow

      @twiker @Foxy99
      Moin,

      super, dass immer mehr Leute sich an "Hochvolt-Batterien" trauen. Da mache ich gerne mit bzw. bringe meine Erfahrungen ein.

      Ich habe mir auch grade einen Speicher aus eAuto Batterien und dem REC BMS passend zu dem Sungrow SH10RT gebaut und mich deshalb damit beschäftigt. (LGChem 40kWh Li-MNC aus dem Daimler EQC).

      Sehr wahrscheinlich sucht ihr erst einmal dieses Protocol:
      https://onlineshop.gcsolar.co.za/wp-content/uploads/2021/07/CAN-Bus-Protocol-Sermatec-high-voltage-V1.1810kW.pdf

      Es ist das CAN Hochvoltbatterien Protokoll, dass auch die Pylontech Hochvolt Batterien (SC1000 und SC0500) implementiert haben und der Sungrow SHxxRT versteht.

      Ich persönlich finde es etwas sicherheitskritisch das BMS über den iobroker mit den Sungrow Wechselrichter zu verbinden. Hoffentlich hat Euer BMS auch Sicherheitsmechanismen und hoffentlich einen Schütz, der bei Überladung öffnet.... Ich bin ein Riesen IOBroker-Fan, aber denke iobroker ist nicht das richtige für sicherheitsrelevante Steuerungen! Man kommt ja auch nicht auf die Idee die Einspritzpumpe eines Ölbrenners mit IOBroker zu steuern.

      Für mich muss ein BMS direkt via CAN mit dem Wechselrichter sprechen. Ohne eine IP Strecke dazwischen. Alles muss mit max 200ms reagieren. IP Netze können ausfallen. Ein brennende Batterie will keiner.

      Leider gibt es im Moment kein BMS für DIY Batterien das Out-Of-The-Box das Hochvolt-CAN Protokoll unterstützt. Man könnte es mit dem Orion BMS2 konfigurieren, dass in vielen Autos und im Sonderfahrzeugbau verwendet wird. (https://evshop.eu/en/bms/275-180-kit-standard-orion-2-bms.html) Das hat aber nur 250mA Regeleingriff.

      Das beste BMS für solche Konfigurationen ist meiner Meinung nach das REC-Master Slave https://www.rec-bms.com/wp-content/uploads/2021/04/UserManual_REC_MS.pdf das auch für 1000V zugelassen ist und 1 A Regel-Eingriff hat. Damit halten LiFePO oder LiMNC Batterien 30 Jahre wenn man sie nicht zu sehr stresst.

      Leider mann man den CAN Master Controller von REC nicht selbst programmieren. Ich habe deshalb mit den Entwicklungsleiter von REC Kontakt aufgenommen und ihm angeboten auf meiner Sungrow-REC Konfiguration zu testen. Er will in den nächsten Wochen die Firmware entsprechend schreiben. Es ist der gleiche der auch die 48V Version des CAN Protocols geschrieben hat. Deshalb bin ich zuversichtlich.

      Natürlich kann man das REC und den Sungrow nachher wieder zum monitoren in iobroker bringen. Bei mir wird das auch passieren und der iobroker wird den Tesla Ladestrom steuern und einen Solar-Heizstab einschalten, wenn PV Leistung übrig ist usw. Aber das ist alles außerhalb des sicherheitskritischen Wechselrichter-BMS Kreises.

      Sobald das BMS richtig mit dem Wechselrichter läuft, hat man eine reliable connection die auch auf alle Ausnahmesituationen getestet ist. Falls man das im iobroker abbildet, denkt bitte unbedingt daran diese Emergency Situationen zu testen:

      1. BMS sagt SOC 100%, Wechselrichter (kaputt) lädt trotzdem weiter, was passiert?
      2. BMS sagt SOC <5%, Wechselrichter (kaputt) entlädt trotzdem weiter, was passiert?
      3. Temperatur in der Batterie ist zu hoch, Wechselrichter muss aus gehen ---> bei mir geht das sofort der Schütz zur Batterie auf und mein Handy klingelt.
      4. BMS sagt ok, aber findet Wechselrichter nicht --> Alarm - defekten Wechselrichter checken. Möglicherweise Blitzschlag.
      5. Sungrow ok, aber BMS tod --> defektes BMS checken.
      6. CAN Kabel wird unterbrochen (controller können kaputt gehen) Anlage muss stehen bleiben.
      7. BMS wünscht sich einen kleineren Ladestrom - Sungrow muss reagieren, wenn nicht, Schütz auf! Achtung, die Wechselrichter machen einfach weiter, wenn sie nicht gestoppt werden. Das ist #1 Grund für Solar-Batterie-Brände.
      8. Was ist mit den ganzen Grid-On/Off Szenarien? Nicht nur das BMS sondern auch der ganze iobroker muss dann auf der USV sein, oder sicher wieder hoch starten.
      9. Darkstart - also das Szenario wenn bei einem Stromausfall die Batterie komplett leer ist, das System runter fährt, und dann am nächsten Tag wieder Sonne kommt. Wie startet das alles wieder hoch?

      Man sieht da ist eine Menge zu tun, bzw. wurde von REC schon für 48V getan. Das wird dann auch alles wieder für Hochvolt gehen.

      Ich werde berichten wie mein Projekt weitergeht.

      Grüße
      Stefan

      PS: Ich hoffe alle hier, kennen sich mit Hochvolt-Batterien aus und schalten nicht einfach 5 mal 48V Batterien in Serie. Die Batterie muss als Hochvoltbatterie gebaut sein und 1000V Spannungsfest zu ihrem geerdeten Gehäuse sein.... usw.
      Wenn alles läuft poste ich eine komplette Bauanleitung mit den wichtigsten Sicherheitstipps.

      posted in Praktische Anwendungen (Showcase)
      S
      StefanRied
    • RE: MQTT Import IOBRoker ->ESPEasy?

      Und dann gibt es natürlich noch das MQTT Import Plugin

      Da habe ich wirklich eine weile gebraucht bis ich die Konfiguration verstanden haben. Hier ein Beispiel:

      Bildschirmfoto 2022-10-14 um 21.49.58.png

      Bildschirmfoto 2022-10-14 um 21.50.22.png

      Je nachdem wie viel Energie aus der PV übrig ist, schreibt ein IOBroker Script das in den State "Power".
      Das ESPEasy hat sich mit dem MQTT Import das Topic subscribed und schreibt es in die gleichnamige Variable "Power".

      posted in ioBroker Allgemein
      S
      StefanRied
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo