Navigation

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

    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

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

    Marc_St

    @Marc_St

    5
    Reputation
    151
    Profile views
    45
    Posts
    2
    Followers
    0
    Following
    Joined Last Online

    Marc_St Follow
    Starter

    Best posts made by Marc_St

    • RE: Einfach mal zeigen will….. :-) - Teil 2

      @SBorg sagte in Einfach mal zeigen will….. 🙂 - Teil 2:

      Muss ich mich wohl auch noch mal mit SVG auseinandersetzen. Außer mal die Farbe ändern habe ich bis dato noch nix damit gemacht 🙂

      Besten Dank. Mir wurde auch bei der Beschäftigung mit SVG und Javascript erst klar, dass ich völlig frei bin, Zeichnungen, Animationen, Farbgebungen in Abhängigkeit der Temperatur usw. zu realisieren.

      So richtig gut ist das leider nirgends erklärt.

      Da das Forum meinen vor einiger Zeit gepostete JS-Code etwas beeinträchtigt hat, hier auch noch einmal der Code, der zusammen mit den per SVG-Datei beschriebenen, grafischen Elemente die Darstellung bewirkt. Bestimmt sind einige Funktionen davon hilfreich für eigene Projekte, etwa die temperaturabhängige Einfärbung der Leitungen, der Trick mit den Fluss-Animationen oder das Drehen der Pumpen:

      <script type="text/javascript">
      var svgNS = "http://www.w3.org/2000/svg";
      setTimeout(function () {
          
          var trigger1 = {modbus.0.coils.4_Zirkulationspumpe};
          var trigger2 = {modbus.0.holdingRegisters.17_Drehzahl_WW};
          var trigger3 = {modbus.0.holdingRegisters.18_Drehzahl_Solar};
          var trigger4 = {modbus.0.coils.3_Heizungspumpe};
          var trigger9 = {modbus.0.coils.9_Solar_Minlauf};
          
          var puffer_oben = color(document.getElementById('puffer_oben').innerHTML);
          var hpoben = color(document.getElementById('hpoben').innerHTML);
          var hz_vl = color(document.getElementById('hz_vl').innerHTML);
          var hz_rl = color(document.getElementById('hz_rl').innerHTML);
          var solar_rl = color(document.getElementById('solar_vl').innerHTML);
          var solar_vl = color(document.getElementById('solar_rl').innerHTML);
          var ww_rl = color(document.getElementById('ww_rl').innerHTML);
          var hz_rl2 = color(26);
      
          document.getElementById("stop54").setAttribute("stop-color", puffer_oben);
          document.getElementById("stop52").setAttribute("stop-color", hpoben);
          document.getElementById("stop50").setAttribute("stop-color", color(document.getElementById('puffer_unten').innerHTML));
          document.getElementById("ww_heis_fuellung").setAttribute("stroke", puffer_oben);
          document.getElementById("hz_vl_1_fuellung").setAttribute("stroke", hpoben);
          document.getElementById("hz_vl_2_fuellung").setAttribute("stroke", color(document.getElementById('hz_vl_vor_wt').innerHTML));
          document.getElementById("hz_rl_0_fuellung").setAttribute("stroke", hz_rl2);
          document.getElementById("hz_rl_1_fuellung").setAttribute("stroke", hz_rl2);
          document.getElementById("hz_rl_2_fuellung").setAttribute("stroke", hz_rl2);
          document.getElementById("hz_vl2_fuellung").setAttribute("stroke", hz_vl);
          document.getElementById("hz_rl2_fuellung").setAttribute("stroke", hz_rl);
          document.getElementById("ww_rueck_fuellung1").setAttribute("stroke", ww_rl);
          document.getElementById("ww_rueck_fuellung2").setAttribute("stroke", ww_rl);
          document.getElementById("stop3914").setAttribute("stop-color", color((document.getElementById('zirku_rl').innerHTML)));
          document.getElementById("stop3916").setAttribute("stop-color", color((document.getElementById('warmwasser').innerHTML)));
          document.getElementById("stop5731").setAttribute("stop-color", solar_rl);
          document.getElementById("stop5729").setAttribute("stop-color", solar_vl);
          document.getElementById("solar_rl_fuellung").setAttribute("stroke", solar_rl);
          document.getElementById("solar_rl_fuellung2").setAttribute("stroke", solar_rl);
          document.getElementById("solar_vl_fuellung").setAttribute("stroke", solar_vl);
          document.getElementById("solar_ausleitung").setAttribute("stroke", solar_rl);
          document.getElementById("kollektor_fuellung").setAttribute("fill", color((document.getElementById('kollektor_temp').innerHTML)));
      
          var wwdrehzahl1 = parseInt((document.getElementById('ww_dreh').innerHTML));
          if (wwdrehzahl1 === 0) {
              addRotateTransform('ww_pumpe', 0 ,1);
              document.getElementById("ww_heiss_flow").style.display = "none";
              document.getElementById("www-an_tmv").style.display = "none";
              document.getElementById("ww_rueck_flow").style.display = "none";
          }
          else {
              var wwdrehzahl2 = (60 / wwdrehzahl1);
              addRotateTransform('ww_pumpe', wwdrehzahl2 ,1);
              document.getElementById("ww_heiss_flow").style.display = "block";
              document.getElementById("www-an_tmv").style.display = "block";
              document.getElementById("ww_rueck_flow").style.display = "block";
          };
          
          if ((document.getElementById('brenner').innerHTML) === 'false') {
              document.getElementById("flamme").style.display = "block";
          }
          else {
              document.getElementById("flamme").style.display = "none";
          }; 
          
          if ((document.getElementById('hzp').innerHTML) != 'true') {
              addRotateTransform('fbpumpe1',5 ,1);
              addRotateTransform('fbpumpe2',5 ,1);
              document.getElementById("hz_flow").style.display = "block";
          }
          else {
              addRotateTransform('fbpumpe1',0 ,1);
              addRotateTransform('fbpumpe2',0 ,1);
              document.getElementById("hz_flow").style.display = "none";
        }; 
        
          if ((document.getElementById('zirku').innerHTML) != 'true') {
              addRotateTransform('ww_zirku_pumpe',5 ,1);
              document.getElementById("ww_zirku_flow").style.display = "block";
          }
          else {
              addRotateTransform('ww_zirku_pumpe',0 ,1);
              document.getElementById("ww_zirku_flow").style.display = "none";
        };
        
          if ((document.getElementById('solarstart').innerHTML) != 'true') {
              addRotateTransform('solar_pumpe',2 ,1);
              document.getElementById("solar_flow").style.display = "block";
          }
          else {
              var solardrehzahl1 = parseInt((document.getElementById('solar_dreh').innerHTML));
              if (solardrehzahl1 === 0) {
              document.getElementById("solar_flow").style.display = "none";
              addRotateTransform('solar_pumpe', 0 ,1);
              }
              else {
              var solardrehzahl2 = (60 / solardrehzahl1);
              addRotateTransform('solar_pumpe', solardrehzahl2 ,1);
              document.getElementById("solar_flow").style.display = "block";
              }; 
          }; 
      }, 1);
      
         	function addRotateTransform(target_id, speed, direction) {
      		var element_to_rotate = document.getElementById(target_id);
      		var my_transform = document.createElementNS(svgNS, "animateTransform");
      		var bb = element_to_rotate.getBBox();
      		var cx = bb.x + bb.width/2;
      		var cy = bb.y + bb.height/2;
      		my_transform.setAttributeNS(null, "attributeName", "transform");
      		my_transform.setAttributeNS(null, "attributeType", "XML");
      		my_transform.setAttributeNS(null, "type", "rotate");
      		my_transform.setAttributeNS(null, "dur", speed + "s");
      		my_transform.setAttributeNS(null, "repeatCount", "indefinite");
      		my_transform.setAttributeNS(null, "from", "0 "+cx+" "+cy);
      		my_transform.setAttributeNS(null, "to", 360*direction+" "+cx+" "+cy);		
      		element_to_rotate.appendChild(my_transform);
      		my_transform.beginElement();
      	}
      	    function color(value) {
          	var highColor = "#ff6060";
          	var lowColor = "#6060ff";
          	var highTemp = 90;
          	var lowTemp = 20;
          	if(value > highTemp) {
          		return highColor;
          	}
          	else if(value < lowTemp) {
          		return lowColor;
          	}
          	else {
          		var lr = parseInt("0x"+lowColor.substring(1,3));
          		var lg = parseInt("0x"+lowColor.substring(3,5));
          		var lb = parseInt("0x"+lowColor.substring(5,7));
          		var hr = parseInt("0x"+highColor.substring(1,3));
          		var hg = parseInt("0x"+highColor.substring(3,5));
          		var hb = parseInt("0x"+highColor.substring(5,7));
          		var cr = parseInt(lr + (hr-lr)*(value-lowTemp)/(highTemp-lowTemp)).toString(16);
          		var cg = parseInt(lg + (hg-lg)*(value-lowTemp)/(highTemp-lowTemp)).toString(16);
          		var cb = parseInt(lb + (hb-lb)*(value-lowTemp)/(highTemp-lowTemp)).toString(16);
          		cr = cr.length == 1 ? "0"+cr: cr;
          		cg = cg.length == 1 ? "0"+cg: cg;
          		cb = cb.length == 1 ? "0"+cb: cb;
          		return "#"+cr+cg+cb;
          	}
          }
        </script>
      
      posted in Praktische Anwendungen (Showcase)
      M
      Marc_St
    • RE: Welche Hardware bei der PV-Anlage

      @lemuba sagte in Welche Hardware bei der Solaranlage:

      Vielleicht änderst Du Deine Überschrift nochmal auf PV-Anlage...? Solar könnte auch Warmwasser sein....

      Yep, habe ich angepasst. Eine Solarthermie-Anlage habe übrigens ich bereits, und auch gut in ioBroker eingebunden.

      @lemuba sagte in Welche Hardware bei der Solaranlage:

      Hatte neulich den EON Mann hier. PV Anlage mit Speicher irgendwas bei Peak 7kW bei rausgekommen, und ca. €19K..., 11,3 Jahre Amortisation...

      Mir erscheint das ehrlich gesagt etwas teuer und auch etwas optimistisch in der Amortisation gerechnet. Aber ich stehe auch noch am Anfang.

      @lemuba sagte in Welche Hardware bei der Solaranlage:

      Zu eventuellen Speichern die Aussage:
      Eine tolle Möglichkeit um über Umwegen den kW/h Preis auf 50 Cent zu puschen. Also völlig unnütz... Nach 10 Jahren sind die SpeicherAkkus wahrscheinlich platt, aber die gesamte Anlage auf 20 Jahre kalkuliert...

      Ja, sehe ich auch so.

      posted in Hardware
      M
      Marc_St
    • Wallbox Mennekes Amtron auslesen - Adapter aus Skript?

      Liebes Forum,

      nach einigem Experimentieren hier ein Script, welches meine Mennekes Amtron Xtra 22 c2 Wallbox ausliest. Der Code ist nicht elegant, sondern sehr modular und übersichtlich gestaltet. Bitte nicht lachen - es ging mir erst einmal darum, dass es läuft.

      Zunächst möchte ich das einfach Teilen. Dann geht es mir auch um einen Adapter - dass es den nicht gab, hatte mich geärgert und zur Skriptentwicklung getrieben. Es gibt bis heute keinen Adapter. Deshalb meine Folgefrage:

      Wie aufwendig wäre es, aus so einem Skript einen Adapter zu erstellen? Im Grunde müsste man nur PIN und IP-Adresse als Parameter übergeben ...

      // Basierend auf https://github.com/lephisto/amtron
      
      var abfrage_DevInfo = "curl -H 'Accept: application/json' http://10.0.1.28:25000/MHCP/1.0/DevInfo?DevKey=999999";
      var abfrage_ChargeData = "curl -H 'Accept: application/json' http://10.0.1.28:25000/MHCP/1.0/ChargeData?DevKey=999999";
      var abfrage_Statistics_Day = "curl -H 'Accept: application/json' http://10.0.1.28:25000/MHCP/1.0/Statistics/Day?DevKey=999999";
      var abfrage_Statistics_Week = "curl -H 'Accept: application/json' http://10.0.1.28:25000/MHCP/1.0/Statistics/Week?DevKey=999999";
      var abfrage_Statistics_Month = "curl -H 'Accept: application/json' http://10.0.1.28:25000/MHCP/1.0/Statistics/Month?DevKey=999999";
      var abfrage_Statistics_Year = "curl -H 'Accept: application/json' http://10.0.1.28:25000/MHCP/1.0/Statistics/Year?DevKey=999999";
      var abfrage_Statistics_Annual = "curl -H 'Accept: application/json' http://10.0.1.28:25000/MHCP/1.0/Statistics/Annual?DevKey=999999";
      
      // DevInfo: 
      createState('javascript.0.Amtron.DevInfo.SN', 0);
      
      createState('javascript.0.Amtron.DevInfo.DevMode', 0);
      createState('javascript.0.Amtron.DevInfo.ChgState', 0);
      
      createState('javascript.0.Amtron.DevInfo.Phases', 0);
      
      createState('javascript.0.Amtron.DevInfo.MaxCurr', 0, {unit: 'A'});
      createState('javascript.0.Amtron.DevInfo.MaxPwr', 0, {unit: 'W'});
      createState('javascript.0.Amtron.DevInfo.MaxCurrWb', 0, {unit: 'A'});
      
      // ChargeData
      
      createState('javascript.0.Amtron.ChargeData.ChgDuration', 0, {unit: 's'});
      createState('javascript.0.Amtron.ChargeData.ChgNrg', 0, {unit: 'Wh'});
      createState('javascript.0.Amtron.ChargeData.NrgDemand', 0, {unit: 'Wh'});
      
      createState('javascript.0.Amtron.ChargeData.ActPwr', 0, {unit: 'W'});
      createState('javascript.0.Amtron.ChargeData.ActCurr', 0, {unit: 'A'});
      
      // Statistics_Day
      createState('javascript.0.Amtron.Statistics.Day.ChgNrg', 0, {unit: 'Wh'});
      
      // Statistics_Week
      createState('javascript.0.Amtron.Statistics.Week.ChgNrg', 0, {unit: 'Wh'});
      
      // Statistics_Month
      createState('javascript.0.Amtron.Statistics.Month.ChgNrg', 0, {unit: 'Wh'});
      
      // Statistics_Year
      createState('javascript.0.Amtron.Statistics.Year.ChgNrg', 0, {unit: 'Wh'});
      
      // Statistics_Annual
      createState('javascript.0.Amtron.Statistics.Annual.ChgNrg', 0, {unit: 'Wh'});
      
      function abfrageStarten() {
          exec(abfrage_DevInfo, function(err, stdout, stderr) {
              if (err) {
                  log("Error: " + err,"warn"); return;
                  }
              var objects = JSON.parse(stdout);
      
              //       var DevName = objects.DevName.DevName;        /* Name of the device */
              //       var LocTime = objects.LocTime;        /* timestamp */
              //       var Summer = objects.Summer;        /* Is summer time? */
              //       var Tz = objects.Tz;             /* timezone offset in minutes */
              //       var ItemNo = objects.ItemNo;         /* item number */           
              setState("javascript.0.Amtron.DevInfo.SN",objects.Sn.toFixed(0), true); /* Serial Number */
              //        var Hcc3 = objects.Hcc3          /* Info about the HCC3 (main controller) */
              //        var Hmi = objects.Hmi            /* Info about hardware software? */
              //        var Rfid = objects.Rfid          /* Info about RFID? */
              //        var Wifi = objects.Wifi           /* WiFi module version? */
              //        var FixedVehCosts = objects.FixedVehCosts  /* Fixed vehicle costs as specified in the app */
              //        var OldVehCosts = objects.OldVehCosts    /* OldVehicle costs? */
              //        var Color = objects.Color         /* ? */
              setState("javascript.0.Amtron.DevInfo.DevMode",objects.DevMode, true);  /* Curent charging mode */
              setState("javascript.0.Amtron.DevInfo.ChgState",objects.ChgState, true); /* Current charging state */
              //        var WifiOn = objects.WifiOn       /* true if WiFi is on */
              //        var AutoChg = objects.AutoChg       /* true if auto-start charging is enabled*/
              //        var ChgContinue = objects.ChgContinue   /* true if charging should continue after power outage */
              //        var Err = objects.Err            /* current error code, 0 if there is none */
              //        var Battery = objects.Battery        /* EV battery capacity for EnergyManager in Wh*/
              setState("javascript.0.Amtron.DevInfo.Phases",objects.Phases.toFixed(0), true); /* number of phases connected */
              //        var Cable = objects.Cable         /* true if cable is connected/installed? */
              //        var Auth = objects.Auth          /* true if auth by rfid is enabled? */
              //        var DsoEnabled = objects.DsoEnabled    /* ? */
              //        var EmEnabled = objects.EmEnabled     /* true if EnergyManager mode is enabled */
              setState("javascript.0.Amtron.DevInfo.MaxCurr",objects.MaxCurr.toFixed(0), true); /* currently set max. charging current per phase in A*/
              setState("javascript.0.Amtron.DevInfo.MaxPwr",objects.MaxPwr.toFixed(0), true); /* currently set max. charging power in W*/     
              setState("javascript.0.Amtron.DevInfo.MaxCurrWb",objects.MaxCurrWb.toFixed(0), true); /* upper limit for charging current per phase in A*/    
          });
      
          exec(abfrage_ChargeData, function(err, stdout, stderr) {
              if (err) {
                  log("Error: " + err,"warn"); return;
                  }
              var objects = JSON.parse(stdout);
      
              // "ChgState": [EnumChargingState],
              // "Tariff": [string],      /* Current tariff */
              // "Price": [number],       /* Price per kWh with current tariff in 0.1 cents per kWh */
              // "Uid": [string],         /* UserId? */
              setState("javascript.0.Amtron.ChargeData.ChgDuration",objects.ChgDuration, true); /* how long the wallbox is charging the EV */
              setState("javascript.0.Amtron.ChargeData.ChgNrg",objects.ChgNrg.toFixed(0), true); /* how much energy the wallbox has charged in Wh */
              setState("javascript.0.Amtron.ChargeData.NrgDemand",objects.NrgDemand.toFixed(0), true); /* energy demand of the vehicle in Wh */
              // "Solar": [number],       /* maybe percentage of solar energy for current charge */
              // "EmTime": [number],      /* time in which the vehicle has to be fully charged, in Energy Manager mode in minutes*/
              // "RemTime": [number],     /* time remaining of the set EmTime in minutes */
              setState("javascript.0.Amtron.ChargeData.ActPwr",objects.ActPwr, true); /* current power draw of vehicle */
              setState("javascript.0.Amtron.ChargeData.ActCurr",objects.ActCurr.toFixed(0), true); /* currently set max. charging current per phase in A*/
              // "MaxCurrT1": [number],   /* max current per phase in tariff1 */
              // "BeginH_T1": [number],   /* ? */
              // "BeginM_T1": [number],   /* ? */
              // "PriceT1": [number],     /* Price per kWh with Tariff1 in 0.1 cents per kWh*/
              // "MaxCurrT2": [number],   /* max current per pahse in tariff2 */
              // "BeginH_T2": 22,
               // "BeginM_T2": 0,
               // "PriceT2": [number],     /* Price per kWh with Tariff2 in 0.1cents*/
              // "RemoteCurr": [number],  /* current in A per phase as set by app control mode */
              // "SolarPrice": [number],  /* price for solar energy in 0.1cents per kWh */  
              // "ExcessNrg": [boolean],  /* if only excess energy should be used in energy manager mode */
              // "TMaxCurrT1": [number],
              // "TBeginH_T1": [number],   
              // "TBeginM_T1": [number],  
              // "TPriceT1": [number],
              // "TMaxCurrT2": [number],
              // "TBeginH_T2": [number],
              // "TBeginM_T2": [number],
              // "TPriceT2": [number],
              // "TRemoteCurr": [number],
              // "TSolarPrice": [number],
              // "TExcessNrg": [boolean],
               // "HCCP": [string]         /* ? */
          });
      
        exec(abfrage_Statistics_Day, function(err, stdout, stderr) {
              if (err) {
                  log("Error: " + err,"warn"); return;
                  }
              var objects = JSON.parse(stdout);
             setState("javascript.0.Amtron.Statistics.Day.ChgNrg",objects.ChgNrg, true); /* how much energy the wallbox has charged in Wh */
          });
      
       exec(abfrage_Statistics_Week, function(err, stdout, stderr) {
              if (err) {
                  log("Error: " + err,"warn"); return;
                  }
              var objects = JSON.parse(stdout);
             setState("javascript.0.Amtron.Statistics.Week.ChgNrg",objects.ChgNrg, true); /* how much energy the wallbox has charged in Wh */
          });
      
       exec(abfrage_Statistics_Month, function(err, stdout, stderr) {
              if (err) {
                  log("Error: " + err,"warn"); return;
                  }
              var objects = JSON.parse(stdout);
             setState("javascript.0.Amtron.Statistics.Month.ChgNrg",objects.ChgNrg, true); /* how much energy the wallbox has charged in Wh */
          });
      
       exec(abfrage_Statistics_Year, function(err, stdout, stderr) {
              if (err) {
                  log("Error: " + err,"warn"); return;
                  }
              var objects = JSON.parse(stdout);
             setState("javascript.0.Amtron.Statistics.Year.ChgNrg",objects.ChgNrg, true); /* how much energy the wallbox has charged in Wh */
          });
      
           exec(abfrage_Statistics_Annual, function(err, stdout, stderr) {
              if (err) {
                  log("Error: " + err,"warn"); return;
                  }
              var objects = JSON.parse(stdout);
             setState("javascript.0.Amtron.Statistics.Annual.ChgNrg",objects.ChgNrg, true); /* how much energy the wallbox has charged in Wh */
          });
      log("Alle AMTRON-Abfragen erfolgreich")
      }
      
      schedule("*/5 * * * * *", abfrageStarten);
      abfrageStarten(); // bei Scriptstart
      

      Danke und viele Grüße!

      posted in Skripten / Logik
      M
      Marc_St
    • RE: Einfach mal zeigen will….. :-) - Teil 2

      Hier gerade einmal aufgenommen:

      VIS.gif

      posted in Praktische Anwendungen (Showcase)
      M
      Marc_St

    Latest posts made by Marc_St

    • RE: Solarprognose

      Liebe alle, zunächst danke für die Diskussionen hier. Steigt man später mit dem Thema ein, ist so etwas ungemein praktisch.

      Ich habe zwei Fragen:

      1.) Wie genau ist bei Euch die Vorhersage? Ich habe zwei Modulfelder präzise auf der Seite angelegt, korrekten Temperatur-Koeffizient, Neigung, Ausrichtung ... sogar die Verschattung hatte ich aus einer Horizont-Datei mit PVGIS und etwas EXCEL berechnen können. Allzu genau scheinen mir aber die vorhersagen nicht zu sein. Eher noch die Tageserträge, aber die stündlichen Leistungswerte wären natürlich hilfreicher, wenn sie genauer wären. Eine MOSMIX-Station habe ich sogar ganz in der Nähe.

      Ich überlege, einmal die tatsächlichen Werte der Anlage über die Prognose zu legen. Hat das schon jemand fertig zur Hand?

      2.) Was macht Ihr eigentlich mit der Prognose? Abstrakt würde ich etwa sehen, ob es lohnt (oder auch nur überhaupt möglich ist), mein E-Fahrzeug zu laden. Schön und gut, aber das macht die OpenWB ohnehin on Demand. Was könnte man sonst noch machen? Morgens der Regierung die Waschmaschine sperren, weil in zwei Stunden (aber noch nicht aktuell) genug PV-Vertrag vorhanden ist? Der WAF wäre wohl sehr gering, und dann kommt es ja auch sehr auf die individuellen Möglichkeiten solcher Verbraucher an. Was meint Ihr?

      LG!

      posted in ioBroker Allgemein
      M
      Marc_St
    • RE: Wallbox Mennekes Amtron auslesen - Adapter aus Skript?

      In ioBroker als JC Skript stark vereinfacht - nur um den Syntax zu illustrieren - also so:

      var curlcommand = "curl -d '{ \"Permanent\": true, \"RemoteCurr\": 6, \"AutoChg\": null, \"ChgState\": \"Continue\", \"Uid\": null}' -H \"Content-Type: application/json\" -X POST http://10.0.1.28:25000/MHCP/1.0/ChargeData?DevKey=XXXXXX";
      
      function AmtronBeschreiben() {
          exec(curlcommand, function(err, stdout, stderr) {
              if (err) {
                  log(stderr,'error');
                  return;
              }
          });
      }
      
      AmtronBeschreiben(); // bei Scriptstart
      

      Der Trick ist also das Escapen der Anführungsstrichen in den Anführungsstrichen.

      Die XXXXXX sind natürlich durch den individuellen Key zu ersetzen. Die IP-Adresse auch. Der Port dürfte hingegen immer stimmen.

      posted in Skripten / Logik
      M
      Marc_St
    • RE: Wallbox Mennekes Amtron auslesen - Adapter aus Skript?

      @x-sven sagte in Wallbox Mennekes Amtron auslesen - Adapter aus Skript?:

      @Marc_St
      Hast Du eine Idee, wie man die Strombegrenzung als POST setzten könnte? (parameter RemoteCurr)
      Ich werde aus den Hinweisen unter https://github.com/lephisto/amtron/blob/master/docs/api/ChargeData/post.md nicht richtig schlau. Wie würde so ein post mittels curl - Aufruf aussehen?

      Ja, es ist dort nicht toll erklärt. Hier in paar Beispiele:

      Stromstärke auf 6 Ampere stellen:

      curl -d '{ "Permanent": true, "RemoteCurr": 6, "AutoChg": null, "ChgState": null, "Uid": null}' -H "Content-Type: application/json" -X POST http://10.0.1.28:25000/MHCP/1.0/ChargeData?DevKey=XXXXXX
      

      Ladevorgang pausieren

      curl -d '{ "Permanent": true, "RemoteCurr": 6, "AutoChg": null, "ChgState": "Pause", "Uid": null}' -H "Content-Type: application/json" -X POST http://10.0.1.28:25000/MHCP/1.0/ChargeData?DevKey=XXXXXX
      

      Ladevorgang fortsetzen:

      curl -d '{ "Permanent": true, "RemoteCurr": 6, "AutoChg": null, "ChgState": "Continue", "Uid": null}' -H "Content-Type: application/json" -X POST http://10.0.1.28:25000/MHCP/1.0/ChargeData?DevKey=XXXXXX
      

      Viele Grüße!

      posted in Skripten / Logik
      M
      Marc_St
    • PV / Solarvisualisierung mit Sonnenstand und ggfs. Horizont

      Liebe alle,

      bald kommt eine PV-Anlage; ich werde sie per Modbus auslesen können.

      Nun fange ich an, mir über die Visualisierung Gedanken zu machen. Grundsätzlich traue ich mir schon zu, Dinge selbst zu schreiben.

      Aber unnötige will ich auch nicht das Rad neu erfinden. Ich stelle mir insbesondere vor, eine grafische Darstellung des Sonnenstands zu haben. Bei der PV-Planung hatte ich auch eine eigene Horizont-Datei erstellt. Wenn die auch noch mit berücksichtigt werden könnte, wäre das super. Gibt es da schon was?

      Ansonsten werde ich es selbst versuchen müssen. Bis wieder die Regierung meckert ...

      Viele Grüße!

      posted in Visualisierung
      M
      Marc_St
    • RE: Welche Hardware bei der PV-Anlage

      @lemuba sagte in Welche Hardware bei der Solaranlage:

      Vielleicht änderst Du Deine Überschrift nochmal auf PV-Anlage...? Solar könnte auch Warmwasser sein....

      Yep, habe ich angepasst. Eine Solarthermie-Anlage habe übrigens ich bereits, und auch gut in ioBroker eingebunden.

      @lemuba sagte in Welche Hardware bei der Solaranlage:

      Hatte neulich den EON Mann hier. PV Anlage mit Speicher irgendwas bei Peak 7kW bei rausgekommen, und ca. €19K..., 11,3 Jahre Amortisation...

      Mir erscheint das ehrlich gesagt etwas teuer und auch etwas optimistisch in der Amortisation gerechnet. Aber ich stehe auch noch am Anfang.

      @lemuba sagte in Welche Hardware bei der Solaranlage:

      Zu eventuellen Speichern die Aussage:
      Eine tolle Möglichkeit um über Umwegen den kW/h Preis auf 50 Cent zu puschen. Also völlig unnütz... Nach 10 Jahren sind die SpeicherAkkus wahrscheinlich platt, aber die gesamte Anlage auf 20 Jahre kalkuliert...

      Ja, sehe ich auch so.

      posted in Hardware
      M
      Marc_St
    • RE: ioB und kompatible Wallboxen

      @JB_Sullivan

      @Marc_St sagte in ioB und kompatible Wallboxen:

      @JB_Sullivan sagte in ioB und kompatible Wallboxen:

      Hat die Meneckes einen eigenen Adapter für ioB - oder wie funktioniert das - modbus?

      https://forum.iobroker.net/topic/32179/wallbox-mennekes-amtron-auslesen-adapter-aus-skript

      @JB_Sullivan sagte in ioB und kompatible Wallboxen:

      @Marc_St - Ah super -sind die Datenpunkte bei der 11kw Wallbox identisch -weißt du das?

      Denke ja, die Dokumentation https://github.com/lephisto/amtron bezieht sich ja auch gar nicht speziell auf die 22 KW-Version. Schauen musst Du nur, dass Du eine Mennekes Amtron mit Netzanbindung nimmst.

      Ich hatte übrigens auch lange Wallboxen verglichen und auch mit dem Netzbetreiber gesprochen; auch er meinte, dass die Amtron von Aufbau und Inhalt die deutlich beste wäre.

      posted in ioBroker Allgemein
      M
      Marc_St
    • RE: ioB und kompatible Wallboxen

      @JB_Sullivan sagte in ioB und kompatible Wallboxen:

      Hat die Meneckes einen eigenen Adapter für ioB - oder wie funktioniert das - modbus?

      https://forum.iobroker.net/topic/32179/wallbox-mennekes-amtron-auslesen-adapter-aus-skript

      posted in ioBroker Allgemein
      M
      Marc_St
    • RE: ioB und kompatible Wallboxen

      @JB_Sullivan

      Ich würde immer versuchen, 22 KW zu bekommen. Will der Netzbetreiber das nicht genehmigen, nimmst du halt 11 KW.

      Als Stecker hast du im Grunde immer einen Typ-2-Stecker, also einen so genannten Mennekes-Stecker.

      posted in ioBroker Allgemein
      M
      Marc_St
    • RE: ioB und kompatible Wallboxen

      @JB_Sullivan

      Meine Mennekes Amtron xtra 22 c2 klappt gut mit ioBroker. Die Wallbox ist teuer, aber gut.

      posted in ioBroker Allgemein
      M
      Marc_St
    • Welche Hardware bei der PV-Anlage

      Liebes Forum,

      ioBroker läuft bei mir zentral und steuert beispielsweise HomeMatic, aber auch die Wallbox für das eAuto und so weiter.

      Nun überlege ich die Anschaffung einer Solaranlage. Wichtig wäre mir, die Anlage gut per ioBroker auslesen zu können, um dann aus ioBroker heraus andere Aspekte steuern zu können.

      Empfiehlt sich hier eine bestimmte Hardware? Ich habe da bisher noch keine Ahnung, welche Hardware überhaupt relevant ist. Der Wechselrichter? Oder doch eine
      bestimmte (proprietäre?) Software für due Solaranlage?

      Danke Euch!

      LG

      posted in Hardware
      M
      Marc_St
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo