Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Auslesen der Viessmann Cloud für Heizung?!?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    418

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Auslesen der Viessmann Cloud für Heizung?!?

Scheduled Pinned Locked Moved Skripten / Logik
109 Posts 34 Posters 26.3k Views 22 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • O Offline
    O Offline
    OMCastle
    wrote on last edited by
    #1

    Hallo zusammen

    ich möchte gerne die Viessmann Cloud (Webseite) für meine Heizung auslesen. Ich nutze bewusst nicht den vcontrold-Adapter, da ich dann auf die Garantieverlängerung durch die Cloud verzichten müssten.

    Über folgenden Link komme ich zu einer Anmeldewebseite:

    http://vitoguide.viessmann.com/login

    Kann mir jemand dabei helfen ein Script als Grundgerüst zu bauen, mit dem ich mich auf der Seite anmelden kann um den Output danach zu parsen?

    Wo ich die einzelnen Parameter finde, weiß ich bereits ..

    Ich weiß aber nicht, wie ich den Login hinbekomme…

    Grüße

    Oliver

    Raspberrymatic auf Pi3 mit CUL für Eltako

    • 30 HomeMatic Aktoren, 10 Eltako Aktoren

    IOBroker auf OrangePi Plus 2e

    • 30 Xiamoi, 5 Netatmo, VW Golf Skript, Viessmann Heizung, ICal, PluseCounter für Strom und Gas, Instar Kameras
    aftershowmanA 1 Reply Last reply
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      wrote on last edited by
      #2

      Haben die keine API?

      Sent from my iPhone using Tapatalk

      1 Reply Last reply
      0
      • O Offline
        O Offline
        OMCastle
        wrote on last edited by
        #3

        Nein. Die haben keine API und die wollen auch keine bereitstellen.

        Raspberrymatic auf Pi3 mit CUL für Eltako

        • 30 HomeMatic Aktoren, 10 Eltako Aktoren

        IOBroker auf OrangePi Plus 2e

        • 30 Xiamoi, 5 Netatmo, VW Golf Skript, Viessmann Heizung, ICal, PluseCounter für Strom und Gas, Instar Kameras
        1 Reply Last reply
        0
        • ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #4

          Hi,

          das Thema interessiert mich auch, hatte nur noch nicht viel Zeit in den letzten beiden Tagen, hab aber folgendes rausgefunden:

          Es gibt was, das stellt ne Api bereit:

          https://github.com/thetrueavatar/Viessmann-Api

          die Erklärung in allerweltssprache hier:

          https://github.com/thetrueavatar/Viessm … ki/english

          Wenn ich am WE hoffentlich Zeit habe, dann spiel ich damit rum und berichte.

          Irgendwie ist eben dauernd was anderes und ich muss alles Smarthometechnische nach hinten schieben.. :-(

          1 Reply Last reply
          0
          • O Offline
            O Offline
            OMCastle
            wrote on last edited by
            #5

            Das klingt noch besser….

            Schaue ich mir auch einmal an... viel Glück für ein wenig Zeit am Wochenende...

            Raspberrymatic auf Pi3 mit CUL für Eltako

            • 30 HomeMatic Aktoren, 10 Eltako Aktoren

            IOBroker auf OrangePi Plus 2e

            • 30 Xiamoi, 5 Netatmo, VW Golf Skript, Viessmann Heizung, ICal, PluseCounter für Strom und Gas, Instar Kameras
            1 Reply Last reply
            0
            • K Offline
              K Offline
              kue.simongmail.com
              wrote on last edited by
              #6

              Hallo zusammen, bin bei der Suche nach einer Anbindung meiner Viessmann Heizung hier drüber gestolpert und wollte fragen, ob es hier Neuigkeiten gibt?

              Viele Grüße.

              1 Reply Last reply
              0
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #7

                Hi,

                ja, wurschtel gerade damit rum, bestimmte Werte abfragen funktioniert schon per bash, setze das jetzt in iobroker javascript um…

                also ist jetzt nur noch eine Frage der Zeit :-)

                1 Reply Last reply
                0
                • K Offline
                  K Offline
                  kue.simongmail.com
                  wrote on last edited by
                  #8

                  Das hört sich super an. Freue mich schon darauf :-)

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    radierer
                    wrote on last edited by
                    #9

                    Hallo,

                    wie siehts denn so aus hier? Gibts evtl. schon was Neues? Ich bin ebenfalls sehr daran interessiert, meine Heizung (und damit einhergehend auch die Zirkulationspumpe) in iobroker zu integrieren. Und das Ganze - aus den vom TE genannten Gründen - ohne zusätzliche Hardware etc.

                    Also denn .. würde mich ziemlich freuen, wenn das hier klappen könnte. :)

                    Gruß

                    1 Reply Last reply
                    0
                    • ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #10

                      Der nette Franzose hat seine Api dazu in den letzten Wochen weiterentwickelt und jetzt endlich eine Dokumentation dazu gemacht :-)

                      Also das kleine Licht am Horizont ist etwas heller geworden..

                      Da Viessmann zur Zeit wohl auch noch an den Datenpunkten arbeitet und Änderungen vornimmt, ist es selbst, wenn die Api funktioniert nicht so einfach.

                      Also wer sich das antun möchte, der kann ja auch schonmal auf einem Testsystem (am besten VM ) mal n Apache und php installieren, und sich die Api versuchen zu installieren, ohne diese wird es sowieso nicht gehen.

                      Wenn das läuft, dann kann man per Javascript relativ einfach Werte abfragen und dann wandeln ( zur Zeit müssen einige Werte durch 8 geteilt werden, etc. damit sie stimmen..)

                      Also einfach ist das nicht. :ugeek:

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        radierer
                        wrote on last edited by
                        #11

                        Oh ha .. da bin ich leider raus .. wenn ich das könnte, würd ich das sofort machen, bin aber leider nur blöder User .. :oops:

                        Mich würds aber trotzdem riesig freuen, wenns jemand hinbekommt und man das Ganze dann evtl. noch als Adapter zur Verfügung stellen könnte. :)

                        1 Reply Last reply
                        0
                        • R Offline
                          R Offline
                          radierer
                          wrote on last edited by
                          #12

                          Guten Morgen,

                          mal sone ganz blöde Frage: Wieso steht im entsprechenden Issue bei GitHub eigentlich, dass das schon released ist? Oder deute ich den Status dort falsch?

                          https://github.com/ioBroker/AdapterRequests/issues/117

                          1 Reply Last reply
                          0
                          • ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #13

                            Das ist bestimmt verwechselt worden..

                            1 Reply Last reply
                            0
                            • R Offline
                              R Offline
                              radierer
                              wrote on last edited by
                              #14

                              @ilovegym:

                              Das ist bestimmt verwechselt worden.. `

                              Das denke ich auch, dass es mit dem bereits vorhandenen Adapter verwechselt wurde. Für den benötigt man ja aber zusätzliche Hardware, was hier ja auch aufgrund der Garantie der online- bzw. Cloudanbindung vermieden werden sollte.

                              1 Reply Last reply
                              0
                              • ? Offline
                                ? Offline
                                A Former User
                                wrote on last edited by
                                #15

                                Hallo,

                                also, über den Umweg FHEM ist es möglich, die Werte in iobroker zu bekommen.

                                Hier ne kurze Beschreibung des Weges:

                                1. Raspian-x86-stretch.iso runtergeladen und in proxmox ne VM damit erstellt. Alle Befehle per root oder mit sudo ausführen!

                                2. apt-get update && apt-get upgrade

                                3. reboot

                                4. raspi-config aufrufen, location einstellen, ssh aktivieren, passwort und hostname setzen

                                5. reboot

                                6. per ssh auf die VM, und php7 und php curl installieren: apt-get install php anschliessend apt-get install php-curl

                                7. Jetzt installieren wir alles für FHEM:

                                8. apt-get install telnet

                                9. wget -qO - http://debian.fhem.de/archive.key | apt-key add -

                                10. nano /etc/apt/sources.list dort das einfügen: deb http://debian.fhem.de/nightly/ /

                                11. apt-get update && apt-get upgrade

                                12. apt-get install fhem

                                13. reboot tut gut

                                14. testen ob fhem läuft, über n webbrowser port 8083 aufrufen oder netstat -npl | grep tcp schauen nach port 8083 7072

                                15. jetzt Datei vissmann.php erzeugen, in /opt/fhem speichern und dieses script reinkopieren:

                                ( das Script habe ich im fhem-forum gefunden, vielen Dank an den Autor, hier der Link: https://forum.fhem.de/index.php/topic,8 … #msg849123 )

                                #!/usr/bin/php
                                 $arg)
                                {
                                	debug_msg ("$argNo : $argv[$argNo]\n", $debug);
                                	switch ($argv[$argNo]) {
                                		case "--debug":
                                			$debug = true;
                                			break;
                                		case "-user":
                                			$isiwebuserid = $argv[$argNo + 1];
                                			break;
                                		case "-passwd":
                                			$isiwebpasswd = $argv[$argNo + 1];
                                			break;
                                	}
                                }
                                
                                debug_msg("isiwebuserid = $isiwebuserid\n", $debug); 
                                debug_msg("isiwebpasswd = $isiwebpasswd\n", $debug); 
                                
                                $callback_uri = "vicare://oauth-callback/everest"; 
                                $code = getCode(); 
                                debug_msg("code=$code\n", $debug); 
                                
                                $access_token = getAccessToken($code); 
                                debug_msg("access token= $access_token\n", $debug); 
                                
                                $resource = getResource($access_token, $apiURLBase . $general); 
                                debug_msg("resource: $resource\n", $debug); 
                                
                                $installation = json_decode($resource, true)["entities"][0]["properties"]["id"];
                                $gw = json_decode($resource, true)["entities"][0]["entities"][0]["properties"]["serial"];
                                debug_msg("gw: $gw\n", $debug); 
                                
                                $RequestList = array(
                                    "heating.boiler.serial.value" 												=> "Kessel_Seriennummer",
                                    "heating.boiler.sensors.temperature.main.status" 						=> "Kessel_Status",
                                    "heating.boiler.sensors.temperature.main.value" 						=> "Kesseltemperatur",
                                    "heating.burner.active" 														=> "Brenner_aktiv",
                                    "heating.burner.automatic.status" 											=> "Brenner_Status",
                                    "heating.burner.automatic.errorCode" 										=> "Brenner_Fehlercode",
                                    "heating.circuits.enabled" 													=> "Aktive_Heizkreise",
                                    "heating.circuits.0.active" 													=> "HK1-aktiv",
                                    "heating.circuits.0.circulation.schedule.active" 						=> "HK1-Zeitsteuerung_Zirkulation_aktiv",
                                    "heating.circuits.0.circulation.schedule.entries" 					=> "HK1-Zeitsteuerung_Zirkulation",
                                    "heating.circuits.0.frostprotection.status" 							=> "HK1-Frostschutz_Status",
                                    "heating.circuits.0.heating.curve.shift" 								=> "HK1-Heizkurve-Niveau",
                                    "heating.circuits.0.heating.curve.slope" 								=> "HK1-Heizkurve-Steigung",
                                    "heating.circuits.0.heating.schedule.active" 							=> "HK1-Zeitsteuerung_Heizung_aktiv",
                                    "heating.circuits.0.heating.schedule.entries" 							=> "HK1-Zeitsteuerung_Heizung",
                                    "heating.circuits.0.operating.modes.active.value" 					=> "HK1-Betriebsart",
                                    "heating.circuits.0.operating.modes.dhw.active" 						=> "HK1-WW_aktiv",
                                    "heating.circuits.0.operating.modes.dhwAndHeating.active" 			=> "HK1-WW_und_Heizen_aktiv",
                                    "heating.circuits.0.operating.modes.forcedNormal.active" 			=> "HK1-Solltemperatur_erzwungen",
                                    "heating.circuits.0.operating.modes.forcedReduced.active" 			=> "HK1-Reduzierte_Temperatur_erzwungen",
                                    "heating.circuits.0.operating.modes.standby.active" 					=> "HK1-Standby_aktiv",
                                    "heating.circuits.0.operating.programs.active.value" 				=> "HK1-Programmstatus",
                                    "heating.circuits.0.operating.programs.comfort.active" 				=> "HK1-Solltemperatur_comfort_aktiv",
                                    "heating.circuits.0.operating.programs.comfort.temperature" 		=> "HK1-Solltemperatur_comfort",
                                    "heating.circuits.0.operating.programs.eco.active" 					=> "HK1-Solltemperatur_eco_aktiv",
                                    "heating.circuits.0.operating.programs.eco.temperature" 			=> "HK1-Solltemperatur_eco",
                                    "heating.circuits.0.operating.programs.external.active" 			=> "HK1-External_aktiv",
                                    "heating.circuits.0.operating.programs.external.temperature" 		=> "HK1-External_Temperatur",
                                    "heating.circuits.0.operating.programs.holiday.active" 				=> "HK1-Urlaub_aktiv",
                                    "heating.circuits.0.operating.programs.holiday.start" 				=> "HK1-Urlaub_Start",
                                    "heating.circuits.0.operating.programs.holiday.end" 					=> "HK1-Urlaub_Ende",
                                    "heating.circuits.0.operating.programs.normal.active" 				=> "HK1-Solltemperatur_aktiv",
                                    "heating.circuits.0.operating.programs.normal.temperature" 		=> "HK1-Solltemperatur_normal",
                                    "heating.circuits.0.operating.programs.reduced.active"				=> "HK1-Solltemperatur_reduziert_aktiv",
                                    "heating.circuits.0.operating.programs.reduced.temperature" 		=> "HK1-Solltemperatur_reduziert",
                                    "heating.circuits.0.operating.programs.standby.active" 				=> "HK1-Standby_aktiv",
                                    "heating.circuits.0.sensors.temperature.room.status" 				=> "HK1-Raum_Status",
                                    "heating.circuits.0.sensors.temperature.supply.status"				=> "HK1-Vorlauftemperatur_aktiv",
                                    "heating.circuits.0.sensors.temperature.supply.value" 				=> "HK1-Vorlauftemperatur",
                                    "heating.configuration.multiFamilyHouse.active" 						=> "Mehrfamilenhaus_aktiv",
                                    "heating.controller.serial.value" 											=> "Controller_Seriennummer",
                                    "heating.device.time.offset.value" 										=> "Device_Time_Offset",
                                    "heating.dhw.active" 															=> "WW-aktiv",
                                    "heating.dhw.oneTimeCharge.active" 										=> "WW-onTimeCharge_aktiv",
                                    "heating.dhw.sensors.temperature.hotWaterStorage.status" 			=> "WW-Temperatur_aktiv",
                                    "heating.dhw.sensors.temperature.hotWaterStorage.value" 			=> "WW-Isttemperatur",
                                    "heating.dhw.temperature.value" 											=> "WW-Solltemperatur",
                                    "heating.dhw.schedule.active" 												=> "WW-zeitgesteuert_aktiv",
                                    "heating.dhw.schedule.entries" 												=> "WW-Zeitplan",
                                    "heating.errors.active.entries" 											=> "Fehlereinträge_aktive",
                                    "heating.errors.history.entries" 											=> "Fehlereinträge_Historie",
                                    "heating.gas.consumption.dhw.day" 											=> "Gasverbrauch_WW/Tag",
                                    "heating.gas.consumption.dhw.week" 										=> "Gasverbrauch_WW/Woche",
                                    "heating.gas.consumption.dhw.month" 										=> "Gasverbrauch_WW/Monat",
                                    "heating.gas.consumption.dhw.year" 										=> "Gasverbrauch_WW/Jahr",
                                    "heating.gas.consumption.heating.day" 									=> "Gasverbrauch_Heizung/Tag",
                                    "heating.gas.consumption.heating.week" 									=> "Gasverbrauch_Heizung/Woche",
                                    "heating.gas.consumption.heating.month" 									=> "Gasverbrauch_Heizung/Monat",
                                    "heating.gas.consumption.heating.year" 									=> "Gasverbrauch_Heizung/Jahr",
                                    "heating.sensors.temperature.outside.status" 							=> "Aussen_Status",
                                    "heating.sensors.temperature.outside.statusWired" 					=> "Aussen_StatusWired",
                                    "heating.sensors.temperature.outside.statusWireless" 				=> "Aussen_StatusWireless",
                                    "heating.sensors.temperature.outside.value" 							=> "Aussentemperatur",
                                    "heating.service.timeBased.serviceDue" 									=> "Service_fällig",
                                    "heating.service.timeBased.serviceIntervalMonths" 					=> "Service_Intervall_Monate",
                                    "heating.service.timeBased.activeMonthSinceLastService" 			=> "Service_Monate_aktiv_seit_letzten_Service",
                                    "heating.service.timeBased.lastService" 									=> "Service_Letzter",
                                    "heating.service.burnerBased.serviceDue" 								=> "Service_fällig_brennerbasier",
                                    "heating.service.burnerBased.serviceIntervalBurnerHours" 			=> "Service_Intervall_Betriebsstunden",
                                    "heating.service.burnerBased.activeBurnerHoursSinceLastService" 	=> "Service_Betriebsstunden_seit_letzten",
                                    "heating.service.burnerBased.lastService" 								=> "Service_Letzter_brennerbasiert",
                                );
                                
                                // Erstmal alle Daten komplett abfragen
                                $resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/");
                                
                                $items = json_decode($resource, true)["entities"];
                                
                                $r = "";
                                
                                // Jetzt alle Werte in der Antwort checken und in ein Array schreiben
                                foreach ($items as $ItemNo => $Item)
                                { 
                                	$FieldName = strval($items[$ItemNo]["class"][0]);
                                	//echo "$FieldName\n";
                                
                                	if ( array_key_exists("properties", $items[$ItemNo] ) ) 
                                	{
                                		 $Properties=$items[$ItemNo]["properties"];
                                		 foreach ($Properties as $PropertyNo => $Property)
                                		 {
                                			$Typ = strval($Properties["$PropertyNo"]["type"]);
                                			switch($Typ) {
                                				case "string":
                                				case "number":
                                					$Wert = strval($Properties["$PropertyNo"]["value"]);
                                					break;
                                				case "boolean":
                                					if ($Properties["$PropertyNo"]["value"] != "")
                                					{$Wert = "1";} else {$Wert = "0";}
                                					break;
                                				case "array":
                                					$Wert = implode(",", $Properties["$PropertyNo"]["value"]);
                                					break;
                                				case "Schedule":
                                					$Entries = $Properties["$PropertyNo"]["value"];
                                					$Wert = "";
                                					foreach ($Entries as $EntryNo => $Entry)
                                					{
                                						$Wert = $Wert.$EntryNo.":";
                                						$Entries2 = $Entries["$EntryNo"][0];
                                						foreach ($Entries2 as $EntryNo2 => $Entry2)
                                						{
                                							$Wert = $Wert." ".$EntryNo2.":".$Entries2[$EntryNo2];
                                						}
                                						$Wert = $Wert.", ";
                                					}
                                					break;
                                				case "ErrorListChanges":	
                                					$Wert = "Wert ist ein ErrorListChanges";
                                					break;
                                		 	}
                                		 	$Description = $RequestList["$FieldName.$PropertyNo"];
                                			debug_msg ("$FieldName.$PropertyNo = $Description = $Wert ($Typ)", $debug);
                                			if($debug === false) {$r = "$r"."setreading vitoconnect100 $Description $Wert ;\n";}
                                		 } 
                                	} 
                                }
                                
                                debug_msg ("\n$r", $debug);
                                shell_exec('perl /opt/fhem/fhem.pl 7072 "'.$r.'"');
                                
                                return(0);
                                
                                function getCode() {
                                	 global $client_id, $authorizeURL, $callback_uri;
                                	 global $isiwebuserid, $isiwebpasswd;
                                	 $url = "$authorizeURL?client_id=$client_id&scope=openid&redirect_uri=$callback_uri&response_type=code";
                                	 $header = array("Content-Type: application/x-www-form-urlencoded");
                                	 $curloptions = array(
                                        CURLOPT_URL => $url,
                                        CURLOPT_HTTPHEADER => $header,
                                        CURLOPT_SSL_VERIFYPEER => false,
                                        CURLOPT_RETURNTRANSFER => true,
                                        CURLOPT_USERPWD => "$isiwebuserid:$isiwebpasswd",
                                        CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
                                        CURLOPT_POST => true, 
                                        );
                                    $curl = curl_init();
                                    curl_setopt_array($curl, $curloptions);
                                    $response = curl_exec($curl);
                                    curl_close($curl);
                                    $matches = array();
                                    $pattern = '/code=(.*)"/';
                                    preg_match_all($pattern, $response, $matches);
                                    return ($matches[1][0]);
                                }
                                
                                function getAccessToken($authorization_code) {
                                    global $token_url, $client_id, $client_secret, $callback_uri;
                                    global $isiwebuserid, $isiwebpasswd;
                                    $header = array("Content-Type: application/x-www-form-urlencoded;charset=utf-8");
                                    $params = array( 
                                        "client_id" => $client_id,
                                        "client_secret" => $client_secret,
                                        "code" => $authorization_code,
                                        "redirect_uri" => $callback_uri,
                                        "grant_type" => "authorization_code");
                                
                                    $curloptions = array(
                                    	CURLOPT_URL => $token_url, 
                                    	CURLOPT_HEADER => false, 
                                    	CURLOPT_HTTPHEADER => $header, 
                                    	CURLOPT_SSL_VERIFYPEER => false, 
                                    	CURLOPT_RETURNTRANSFER => true, 
                                    	CURLOPT_POST => true, 
                                    	CURLOPT_POSTFIELDS => rawurldecode(http_build_query($params)));
                                
                                    $curl = curl_init();
                                    curl_setopt_array($curl, $curloptions);
                                    $response = curl_exec($curl); 
                                    curl_getinfo($curl); 
                                    curl_close($curl);
                                
                                     if ($response === false) {
                                     	 echo "Failed\n"; echo curl_error($curl);
                                   // } elseif (json_decode($response)->error) {
                                   //     echo "Error:\n"; echo $authorization_code; echo $response;
                                    }
                                    return json_decode($response)->access_token;
                                }
                                
                                //    we can now use the access_token as much as we want to access protected resources
                                function getResource($access_token, $api) {
                                    //echo "ok\n";
                                    $header = array("Authorization: Bearer {$access_token}");
                                    //var_dump($header);
                                    $curl = curl_init(); 
                                    curl_setopt_array($curl, array( 
                                	    CURLOPT_URL => $api, 
                                   	 CURLOPT_HTTPHEADER => $header, 
                                   	 CURLOPT_SSL_VERIFYPEER => false, 
                                   	 CURLOPT_RETURNTRANSFER => true,
                                    ));
                                
                                    $response = curl_exec($curl); 
                                    curl_close($curl);
                                
                                    //return json_decode($response, true);
                                    return ($response);
                                }
                                
                                function debug_msg($message, $debug) {
                                	if ($debug) {
                                		 echo "$message\n";
                                        }
                                }
                                
                                ?>
                                
                                

                                Erstellt einfach mit "nano /opt/fhem/vissmann.php" die Datei, copy und paste, setzt noch bei den beiden Parametern euren Usernamen(Email) und das Kennwort, und speichert mit ctrl-o und verlasst den Editor mit crtl-x.

                                1. php script ausführbar machen mit chmod +x vissmann.php

                                2. php script dem user fhem zuweisen mit chown vissmann.php fhem

                                3. jetzt die restlichen Schritte, wie im FHEM-Forum beschrieben in FHEM ein Dummy anlegen und die Cron dazu einrichten(AT)

                                https://forum.fhem.de/index.php/topic,8 … #msg849123

                                1. jetzt kann man testen, ob das script funktioniert, es kann auch einfach in der console mit

                                sudo php7.0 vissmann.php --debug -user username -passwd geheimespasswort

                                aufgerufen werden

                                1. jetzt, falls noch nicht geschehen, den iobroker.fhem-adapter installieren, ip, port eintragen, und sich freuen.
                                1 Reply Last reply
                                0
                                • A Offline
                                  A Offline
                                  as15
                                  wrote on last edited by
                                  #16

                                  Mega! Wenn wir hierfür nen Adapter hinbekommen könnten ohne den Umweg über FHEM wäre das noch praktikabler…

                                  Danke aber für die Anleitung!

                                  1 Reply Last reply
                                  0
                                  • ? Offline
                                    ? Offline
                                    A Former User
                                    wrote on last edited by
                                    #17

                                    ja, das ist der Plan, da es vom Hersteller keine Api gibt, wollte ich erstmal was, das man überhaupt benutzen kann, und Viessmann hat in den letzten Monaten einiges an der Schnittstelle geändert, genau wie die App.

                                    Aber jetzt scheint da eine gewisse Ruhe eingekehrt zu sein, und man kann sich an die Umsetzung machen.

                                    1 Reply Last reply
                                    0
                                    • R Offline
                                      R Offline
                                      radierer
                                      wrote on last edited by
                                      #18

                                      Wobei ich da Viessmann hinsichtlich der App auch nicht wirklich verstehe. Scheinbar wird ja die noch halbwegs brauchbare VitotrolPlus App gestrichen (im Play Store schon nicht mehr verfügbar) und stattdessen gibt es nur noch die ViCare Katastrophen App .. verstehe wer will. :roll:

                                      @ilovegym: An dich auf jeden Fall schonmal ein großes Dankeschön für deine Mühe. :)

                                      1 Reply Last reply
                                      0
                                      • ? Offline
                                        ? Offline
                                        A Former User
                                        wrote on last edited by
                                        #19

                                        ich schau mal die Tage, ob ich das php nicht nach iobroker-javascript portiert bekomme.. mir macht nur diese Authentifizierung kopfschmerzen…

                                        1 Reply Last reply
                                        0
                                        • R Offline
                                          R Offline
                                          radierer
                                          wrote on last edited by
                                          #20

                                          Das wäre sehr geil, wenn du das hinbekommen könntest. :D

                                          Zumal ich auch denke, dass Viessmann Heizungen mit Vitoconnect doch recht verbreitet sind und son Adapter für viele nützlich sein könnte.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          675

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe