FTP Server DWD eingestellt

Ups, das will ich doch nicht :wink: Die Idee mit den Bildern kommt aus diesem Post #11

Einfach im Browser auf die Seite http://api.uwz.at/de/de/ gehen und sich zum eigenen Landkreis/Stadt durchklicken. Ich habe dann die URL der gewünschten Bilder aus dem HTML extrahiert und in eine String Variable (~HTMLBox) abgelegt. Das tolle ist, das die Bilder bei gleichen Namen Updates erhalten. Also man muss nur die URL einbinden und fertig ist mann. Hier das Beispiel für Deutschland:


<img id="uwzDE" src='http://api.uwz.at/de/de/incoming/maps_warnings/de/DE_all_warnings_570x500.png' style='max-height: 100%; max-width: 100%;' />

Viel Spaß
Pitti

Danke für die Tipps, bei Aufruf von „http://api.uwz.at/de/de/“ bekam ich gleich

Temporary outage

An error has occurred making this page temporarily unavailable. Our technicians are working to resolve this problem as soon as possible. Please try again later.

Thank you for your patience.
Temporärer Fehler

Leider ist ein Fehler aufgetreten, daher ist diese Seite vorübergehend nicht erreichbar. Unsere Technik arbeitet bereits an dem Problem. Bitte versuchen Sie es später erneut.

Vielen Dank für Ihr Verständnis!

Heute entfällt also erst mal das Wetter; wenn ich aus dem Fenster sehe: recht so! lohnt sich garnicht :o

Viele Grüsse
Harald

Blöd, aber als ich heute morgen die Antwort geschrieben habe ging die Seite noch :banghead:

Aber jetzt bekomme ich auch die Fehlerseite.

Ciao Pitti

Seit gestern ist „http://api.uwz.at/de/de/“ garnicht mehr erreichbar :confused:

https://uwz.at/“ (Das Kompetenzzentrum für Unwetter Österreich - Alle Warnungen) ist erreichbar; also ist die österreichische Unwetterzentrale nicht ganz abgeschaltet.

Was machst Du jetzt mit Deiner Wetterseite ? :stuck_out_tongue:

Viele Grüsse
Harald

P.S.
Kann man eigentlich mit den „Warnungen für Ihre Homepage“ der deutschen Unwetterzentrale etwas anfangen?

Ja, habe auch immer mal wieder geschaut.

Bin heute auf DWD umgestiegen. Wollte eigentlich was programmieren und einstellen, aber war zu K.O. nach der Arbeit dafür. Versuche es am WE bereitzustellen. Dann gleich alles in einem Script mit Auswahl usw.
Idee dafür habe ich schon im Hinterkopf :wink:

Gute Nacht
Pitti

N’abend zusammen,

hatte ja versprochen ein Update für den abgeschalteten Server uwz.at zu liefern. Ich habe jetzt gleich noch meine Radarbilder für Temperatur, Niederschlag und Radarfilm dazugepackt.

Wie Ihr Euer WebFront aufbaut, ist jedem selbst überlassen. Ich habe es jetzt mal in 2 Tabs gepackt (siehe Anhang).

Das Script sollte eigentlich alles automatisch anlegen, d.h. zuerst das Script einmal in der Konsole ausführen. Dann werden alle Variablen erzeugt und ein Grundkonfiguration angelegt. Dannach könnt Ihr Euer Webfront basteln und die gewünschten Werte einstellen/eintragen. Ich denke nach einer Weile rumspielen versteht Ihr wie die Zusammenhänge sind :slight_smile:
Der Timer ist auf 15 Minuten zum zyklischen Aktualisieren eingestellt, kann man auch gern anpassen.


<?php
################################################################################
# Script: Weather.StormWarning.ips.php
# Version:	1.0
# Author:	Heiko Wilknitz (@pitti)
#
# Abrufen von Radarbildern und Unwetterwarnungen
#
# ----------------------------------- ID´s -------------------------------------
#
# Bei Verwendung der Scripte 'Meldungsanzeige im WebFron' (Post #51)
# https://www.symcon.de/forum/threads/12115-Meldungsanzeige-im-WebFront
# hier die ScriptID von 'Meldungsverwaltung' eintragen, sonst 0!
$dbID		= 0;
#
# ----------------------------- Konfiguration ----------------------------------
#
# Benötigte URLs für die verschiedenen Informationen
#
$urls = array(
	# JSON API auslesen
	'JSON'	=> 'https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json',
	# Check Icon
	'CHECK'	=> 'https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/viewer/img/icn_check.png',
	# Level Icons
	'LEVEL'	=> 'https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/viewer/img/warndreieck/<LEVEL>.png',
	# Tye Icons
	'TYPE'	=> 'https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/viewer/img/warndreieck/warn_icons_<TYPE>.png',
	# Temperatur Image
	'TEMP'	=> 'https://www.dwd.de/DWD/wetter/aktuell/deutschland/bilder/wx_<STATE>_akt.jpg',
	# Niederschlag Radar
	'RADAR'	=> 'https://www.dwd.de/DWD/wetter/radar/rad_<STATE>_akt.jpg',
	# Niederschlag Radarfilm
	'MOVIE'	=> 'https://www.dwd.de/DWD/wetter/radar/radfilm_<STATE>_akt.gif',
	# Karte mit allen Warnungen
	'MAPS'	=> 'https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/json/warnungen_gemeinde_map_<STATE><TYPE>.png'
);
#
# Karte
#
$maps = array(
  array(0, 'Bundesland', '', 0x0000FF),
  array(1, 'Deutschland', '', 0x0000FF)
);
#
# Bundesländer
#
$states = array (
	array(0, 'Baden-Württemberg', '', 0x800080, 'baw'),
	array(1, 'Bayern', '', 0x800080, 'bay'),
	array(2, 'Berlin,Brandenburg', '', 0x800080, 'bbb'),
	array(3, 'Hessen', '', 0x800080, 'hes'),
	array(4, 'Mecklenburg-Vorpommer', '', 0x800080, 'mvp'),
	array(5, 'Niedersachsen,Bremen', '', 0x800080, 'nib'),
	array(6, 'Nordrhein-Westfalen', '', 0x800080, 'nrw'),
	array(7, 'Rheinland-Pfalz,Saarland', '', 0x800080, 'rps'),
	array(8, 'Sachsen', '', 0x800080, 'sac'),
	array(9, 'Sachsen-Anhalt', '', 0x800080, 'saa'),
	array(10,'Schleswig-Holstein,Hamburg', '', 0x800080, 'shh'),
	array(11,'Thüringen', '', 0x800080, 'thu')
);
#
# Kriterien
# 
$types = array(
	array(-1,'Alle', '', 0xFFFF00, 'all'),
	array(0, 'Gewitter', '', 0xFFFF00, 'gewitter'),
	array(1, 'Wind / Sturm / Orkan', '', 0xFFFF00, 'sturm'),
	array(2, 'Stark- oder Dauerregen', '', 0xFFFF00, 'regen'),
	array(3, 'Schneefall', '', 0xFFFF00, 'schnee'),
	array(4, 'Nebel', '', 0xFFFF00, 'nebel'),
	array(5, 'Frost', '', 0xFFFF00, 'frost'),
	array(6, 'Glätte, Glatteis', '', 0xFFFF00, 'glatteis'),
	array(7, 'Tauwetter', '', 0xFFFF00, 'tauwetter'),
	array(8, 'Hitze', '', 0xFFFF00, 'hitze'),
	array(9, 'UV-Strahlung', '', 0xFFFF00, 'uv')
);
#
# Warning levels
#
$levels = array(
	0	=> "gelb",
	1	=> "gelb",
	2	=> "gelb",
	3	=> "orange",
	4	=> "rot",
	5	=> "dunkelrot",
	10	=> "violet_hitze",
	20	=> "violet_uv"
);
#
# Initial Code = Stadt Stuttgart
#
$regioCode	= "108111000"; 
#
################################################################################

// INSTALLATION
if($_IPS['SENDER'] == "Execute") {
	// Karte
	$vid = CreateVariableByName($_IPS['SELF'], "Karte", 1);
	CreateProfileInteger('DWD.Map', 'Image', '', '', 0, count($maps)-1, 0, 0, $maps);
	IPS_SetVariableCustomProfile($vid, 'DWD.Map');
	IPS_SetVariableCustomAction($vid, $_IPS['SELF']);
	SetValue($vid, 0);
	// Bundesland
	$vid = CreateVariableByName($_IPS['SELF'], "Bundesland", 1);
	CreateProfileInteger('DWD.State', 'Macro', '', '', 0, count($states)-1, 0, 0, $states);
	IPS_SetVariableCustomProfile($vid, 'DWD.State');
	IPS_SetVariableCustomAction($vid, $_IPS['SELF']);
	SetValue($vid, 0);
	// Kriterien
	$vid = CreateVariableByName($_IPS['SELF'], "Kriterien", 1);
	CreateProfileInteger('DWD.Types', 'Warning', '', '', 0, count($types)-1, 0, 0, $types);
	IPS_SetVariableCustomProfile($vid, 'DWD.Types');
	IPS_SetVariableCustomAction($vid, $_IPS['SELF']);
	SetValue($vid, -1);
	// Region Code
	$vid = CreateVariableByName($_IPS['SELF'], "Region", 3);
	IPS_SetIcon($vid, 'Edit');
	IPS_SetVariableCustomProfile($vid, '~TextBox');
	IPS_SetVariableCustomAction($vid, $_IPS['SELF']);
	SetValue($vid, $regioCode);
	// Aktuelle Temperaturen
	$vid = CreateVariableByName($_IPS['SELF'], "Temperaturen aktuell", 3);
	IPS_SetIcon($vid, 'Temperature');
	IPS_SetVariableCustomProfile($vid, '~HTMLBox');
	SetValue($vid, GetImageTag($states[0][4], $urls['TEMP']));
	// Niederschlagsradar
	$vid = CreateVariableByName($_IPS['SELF'], "Niederschlag Radarbild", 3);
	IPS_SetIcon($vid, 'Rainfall');
	IPS_SetVariableCustomProfile($vid, '~HTMLBox');
	SetValue($vid, GetImageTag($states[0][4], $urls['RADAR']));
	// Niederschlagsradaraufnahme
	$vid = CreateVariableByName($_IPS['SELF'], "Niederschlag Radarfilm", 3);
	IPS_SetIcon($vid, 'Rainfall');
	IPS_SetVariableCustomProfile($vid, '~HTMLBox');
	SetValue($vid, GetImageTag($states[0][4], $urls['MOVIE']));
	// Unwettermeldungen
	$vid = CreateVariableByName($_IPS['SELF'], "Unwettermeldungen", 3);
	IPS_SetIcon($vid, 'WindSpeed');
	IPS_SetVariableCustomProfile($vid, '~HTMLBox');
	SetValue($vid, GetWeatherWarnings($regioCode, -1, $urls, $types, $levels, $dbID));
	// Unwetterkarte
	$vid = CreateVariableByName($_IPS['SELF'], "Unwetterkarte", 3);
	IPS_SetIcon($vid, 'Image');
	IPS_SetVariableCustomProfile($vid, '~HTMLBox');
	SetValue($vid, GetWeatherMap($urls['MAPS'], 0, $states[0][4], $types[0][4]));
	// Script Timer
	if(IPS_GetScriptTimer($_IPS['SELF']) == 0) {
	    IPS_SetScriptTimer($_IPS['SELF'], 60*15);
	}
}
// AKTION VIA WEBFRONT
else if($_IPS['SENDER'] == "WebFront") {
	// Speichern
  	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

	// Karte
	$vid = CreateVariableByName($_IPS['SELF'], "Karte", 1);
	$map = GetValue($vid);
	// Bundesland
	$vid = CreateVariableByName($_IPS['SELF'], "Bundesland", 1);
	$state = GetValue($vid);
	// Kriterien
	$vid = CreateVariableByName($_IPS['SELF'], "Kriterien", 1);
	$type = GetValue($vid);
	// Region Code
	$vid = CreateVariableByName($_IPS['SELF'], "Region", 3);
	$code = GetValue($vid);

	// Aktuelle Temperaturen
	$vid = CreateVariableByName($_IPS['SELF'], "Temperaturen aktuell", 3);
	SetValue($vid, GetImageTag($states[$state][4], $urls['TEMP']));
	// Niederschlagsradar
	$vid = CreateVariableByName($_IPS['SELF'], "Niederschlag Radarbild", 3);
	SetValue($vid, GetImageTag($states[$state][4], $urls['RADAR']));
	// Niederschlagsradaraufnahme
	$vid = CreateVariableByName($_IPS['SELF'], "Niederschlag Radarfilm", 3);
	SetValue($vid, GetImageTag($states[$state][4], $urls['MOVIE']));
	// Unwettermeldungen
	$vid = CreateVariableByName($_IPS['SELF'], "Unwettermeldungen", 3);
	SetValue($vid, GetWeatherWarnings($code, $type, $urls, $types, $levels, $dbID));
	// Unwetterkarte
	$vid = CreateVariableByName($_IPS['SELF'], "Unwetterkarte", 3);
	SetValue($vid, GetWeatherMap($urls['MAPS'], $map, $states[$state][4], $types[$type+1][4]));
}
// TIMER EVENT
else if($_IPS['SENDER'] == "TimerEvent") {
	// Kriterien
	$vid = CreateVariableByName($_IPS['SELF'], "Kriterien", 1);
	$type = GetValue($vid);
	// Unwettermeldungen
	$vid = CreateVariableByName($_IPS['SELF'], "Unwettermeldungen", 3);
	SetValue($vid, GetWeatherWarnings($regioCode, $type, $urls, $types, $levels, $dbID));
}

# ------------------------------ Funktionen ------------------------------------

// Findet zum übergebenen DWD-RegioCode entsprechende Wetterwarnungen und Vorabinformationen
// Übergabe: [STRING]$code = Regiocode, z.B. 106439000 für Rheingau-Taunus-Kreis
// Rückgabe: [STRING] = Warnings als Html-Tabelle
function GetWeatherWarnings($code, $type, $urls, $types, $levels, $db)
{
	//Fehlerbehandlung
	if(!isset($code)) die("Error in Function ".__FUNCTION__." - Missing argument for \$regioCode");
	if(!is_string($code)) die("Error in Function ".__FUNCTION__." - Value for parameter \$regioCode is not a string");   //API aufrufen und XML einlesen

	# Meldungstext wenn keine Warnungen vorliegen
	$check_txt 	= '<b>Keine Unwetter-Meldungen vorhanden!</b><br />';
	$check_txt .= '<i><small>zuletzt aktualisiert am '.date("d.m.",time()).' um '.date("H:i",time()).' Uhr</i></small>';
	
	# Daten abholen
	$json = file_get_contents($urls['JSON']);

	//Warnungen extrahieren und in Array kodieren
	$extract = ExtractUnit($json, 'warnWetter.loadWarnings(', ');'); 
	$array = json_decode($extract,true);
	
	//Übergabearray vorbereiten
	$warnings = array();
	
	//Warnungen und Vorabinformationen durchgehen und wesentliche Felder in Array schreiben
	if(isset($array["vorabInformation"][$code])) foreach($array["vorabInformation"][$code] as $row) array_push($warnings,array("headline" => ReplaceCaseSensitiveWords($row["headline"]), "description" => ReplaceCaseSensitiveWords($row["description"]), "start" => round($row["start"] / 1000,0), "end" => round($row["end"] / 1000,0), "region" => $row["regionName"], "state" => $row["state"], "type" => $row["type"], "level" => $row["level"], "time" => round($array["time"] / 1000,0)));
	if(isset($array["warnings"][$code])) foreach($array["warnings"][$code] as $row) array_push($warnings,array("headline" => ReplaceCaseSensitiveWords($row["headline"]), "description" => ReplaceCaseSensitiveWords($row["description"]), "start" => round($row["start"] / 1000,0), "end" => round($row["end"] / 1000,0), "region" => $row["regionName"], "state" => $row["state"], "type" => $row["type"], "level" => $row["level"], "time" => round($array["time"] / 1000,0)));

	// HTML zusammenbauen
	$style = "";
	$style = $style.'<style type="text/css">';
	$style = $style.'table {width:100%;border-collapse: collapse;}';
	$style = $style.'td.img {width:50px;border:0px;vertical-align: top;text-align:left;padding:10px;border-left: 1px solid rgba(255, 255, 255, 0.2);border-top: 1px solid rgba(255, 255, 255, 0.2);border-bottom: 1px solid rgba(255, 255, 255, 0.2);}';
	$style = $style.'td.txt {vertical-align: top;text-align:left;padding:5px 10px 5px 10px;border-right: 1px solid rgba(255, 255, 255, 0.2);border-top: 1px solid rgba(255, 255, 255, 0.2);border-bottom: 1px solid rgba(255, 255, 255, 0.2);}';
	//$style = $style.'tr:nth-child(even) {background-color: rgba(0, 0, 0, 0.3);}';
	$style = $style.'.stitle { color: rgba(128, 128, 0, 1.0); }';
	$style = $style.'.fwarn { height: 50px; width: 50px;}';
	$style = $style.'.iwarn { margin-left: -50px; height: 50px; width: 50px; }';
	$style = $style.'</style>';
	
	$html  = $style.'<table>'; 

	$count = 0;	
	foreach ($warnings as $key => $value) {
		//print_r($value);
		if(($type == -1) OR ($type == $value['type'])) { 
			$turl = str_replace('<TYPE>', $types[$value['type']+1][4], $urls['TYPE']);
			$lurl = str_replace('<LEVEL>', $levels[$value['level']], $urls['LEVEL']);
			$time = strftime("%a, %d.%b, %H:%M - ", $value['start']).strftime("%a, %d.%b, %H:%M Uhr", $value['end']);
			$html .= '<tr>'; 
			$html .= '<td class=\'img\'><div><img class=\'fwarn\' src=\''.$lurl.'\' alt=\'Level\' /><img class=\'iwarn\' src=\''.$turl.'\' alt=\'Typ\' /></div></td>'; 
			$html .= '<td class=\'txt\'><b>'.$value['headline'].'</b><br / ><i><small>'.$time.'</small></i><br />'.$value['description'].'</td>'; 
			$html .= '</tr>';
			$count++;
		} 
	}
	// Exist Warnings
	if($count == 0) {
		$html .= '<tr>'; 
		$html .= '<td class=\'img\'><div><img class=\'fwarn\' src=\''.$urls['CHECK'].'\' alt=\'No warning\'></div></td>'; 
		$html .= '<td class=\'txt\'>'.$check_txt.'</td>'; 
		$html .= '</tr>'; 
	}
	// Warnungen an Dashboard melden
	if($db != 0) {
		IPS_RunScriptWaitEx($db, array('action' => 'add', 'text' => 'Es liegen Unwetterwarnungen vor!', 'type' => 1, 'expires' => time() + 3600,'image' => 'WindSpeed', 'page' => 'spUnwetter'));
	}
	
	$html .= '</table>'; 
	
	//Rückgabe
	return $html;
}

// Warnungen extrahieren
function ExtractUnit($string, $start, $end)
{
	$pos = stripos($string,$start);
	$str = substr($string,$pos);
	$strTwo = substr($str,strlen($start));
	$secondPos = stripos($strTwo,$end);
	$strThree = substr($strTwo,0,$secondPos);
	$unit = trim($strThree);
	return $unit;
}

// Ersetzen von Großschreibung in normale Schreibweise
function ReplaceCaseSensitiveWords($string)
{
	$string = str_replace("VORABINFORMATION SCHWERES GEWITTER","Vorabinformation schweres Gewitter",$string);
	$string = str_replace("VORABINFORMATION UNWETTER vor SCHWEREM GEWITTER","Vorabinformation Unwetter vor schwerem Gewitter",$string);
	$string = str_replace("VORABINFORMATION UNWETTER vor ORKANBÖEN","Vorabinformation Unwetter vor Orkanböen",$string);
	$string = str_replace("Amtliche UNWETTERWARNUNG vor SCHWEREM GEWITTER mit HEFTIGEM STARKREGEN und HAGEL","Unwetterwarnung vor schwerem Gewitter mit heftigem Starkregen und Hagel",$string);
	$string = str_replace("Amtliche UNWETTERWARNUNG vor ORKANBÖEN","Unwetterwarnung vor Orkanböen",$string);
	$string = str_replace("Amtliche WARNUNG vor GEWITTER","Warnung vor Gewitter",$string);
	$string = str_replace("Amtliche WARNUNG vor STARKEM GEWITTER","Warnung vor starkem Gewitter",$string);
	$string = str_replace("Amtliche WARNUNG vor SCHWEREM GEWITTER","Warnung vor schwerem Gewitter",$string);
	$string = str_replace("Amtliche WARNUNG vor WINDBÖEN","Warnung vor Windböen",$string);
	$string = str_replace("Amtliche WARNUNG vor STARKEN WINDBÖEN","Warnung vor starken Windböen",$string);
	$string = str_replace("Amtliche WARNUNG vor SCHWEREN WINDBÖEN","Warnung vor schweren Windböen",$string);
	$string = str_replace("Amtliche WARNUNG vor STURMBÖEN","Warnung vor Sturmböen",$string);
	$string = str_replace("Amtliche WARNUNG vor ORKANBÖEN","Warnung vor Orkanböen",$string);
	$string = str_replace("Amtliche WARNUNG vor STARKEN STURMBÖEN","Warnung vor starken Sturmböen",$string);
	$string = str_replace("Amtliche WARNUNG vor SCHWEREN STURMBÖEN","Warnung vor schweren Sturmböen",$string);
	$string = str_replace("Amtliche WARNUNG vor DAUERREGEN","Warnung vor Dauerregen",$string);
	$string = str_replace("Amtliche WARNUNG vor NEBEL","Warnung vor Nebel",$string);
	$string = str_replace("Amtliche WARNUNG vor GLÄTTE","Warnung vor Glätte",$string);
	$string = str_replace("Amtliche WARNUNG vor GLATTEIS","Warnung vor Glatteis",$string);
	$string = str_replace("Amtliche WARNUNG vor FROST","Warnung vor Frost",$string);
	$string = str_replace("Amtliche WARNUNG vor LEICHTEM SCHNEEFALL","Warnung vor leichtem Schneefall",$string);
	$string = str_replace("Amtliche WARNUNG vor SCHNEEFALL","Warnung vor Schneefall",$string);
	$string = str_replace("Amtliche WARNUNG vor STARKEM SCHNEEFALL","Warnung vor starkem Schneefall",$string);
	$string = str_replace("Amtliche WARNUNG vor HITZE","Warnung vor extremer Hitze",$string);
	$string = str_replace("
","",$string);
	return $string;
}    

// Erstellt für das übergebene Bundesland und Kriterium den Html-Image-Tag
function GetWeatherMap($url, $map, $state, $type)
{
	// unschön aber wirkungsvoll
	if($map == 1) {
		$state = 'de';
	} 
	if($type == 'all') {
		$type = '';
	}
	else {
		$type = '_'.$type;
	}
	IPS_LogMessage('DWD', 'Map: '.$map.', State: '.$state.', Typ: '.$type);
	$img = str_replace('<STATE>', $state, $url);
	$img = str_replace('<TYPE>', $type, $img);
	// An die persönlichen Vorlieben anpassen!
	$html = "<img src='".$img."' style='height:100%;width:100%;'/>";
	return $html;
}

// Erstellt für das übergebene Bundesland den Html-Image-Tag
function GetImageTag($state, $url)
{
	$img = str_replace('<STATE>', $state, $url);
	// An die persönlichen Vorlieben anpassen!  
	$html = "<img src='".$img."' style='height: 100%; width: 100%; object-fit: fill;' />";
	return $html;
}

// Erzeugt eine Variable unterhalb {id} mit dem Namen {name} vom Typ [type}
// Existiert die Variable schon wird diese zurückgeliefert.
function CreateVariableByName($id, $name, $type) 
{ 
   $vid = @IPS_GetVariableIDByName($name, $id); 
   if($vid===false) { 
      $vid = IPS_CreateVariable($type); 
      IPS_SetParent($vid, $id); 
      IPS_SetName($vid, $name); 
   } 
   return $vid; 
} 

// Erzeugt ein Variablenprofil vom Typ {type} mit Name n{name} 
function CreateProfile($name, $type)
{
	if(!IPS_VariableProfileExists($name)) {
	  IPS_CreateVariableProfile($name, $type);
	} 
	else {
	  $profile = IPS_GetVariableProfile($name);
	  if($profile['ProfileType'] != $type)
	    throw new Exception("Variable profile type does not match for profile ".$name);
	}
}

// Erzeugt ein Integer-Variablenprofil
function CreateProfileInteger($name, $icon, $prefix, $suffix, $minvalue, $maxvalue, $step, $digits, $asso = NULL)
{
	CreateProfile($name, 1);

	IPS_SetVariableProfileIcon($name, $icon);
	IPS_SetVariableProfileText($name, $prefix, $suffix);
	IPS_SetVariableProfileDigits($name, $digits);
	
	if(sizeof($asso) === 0){
	  $minvalue = 0;
	  $maxvalue = 0;
	} 
	IPS_SetVariableProfileValues($name, $minvalue, $maxvalue, $step);
	
	if(sizeof($asso) !== 0){
	  foreach($asso as $ass) {
	    IPS_SetVariableProfileAssociation($name, $ass[0], $ass[1], $ass[2], $ass[3]);
	  }
	}         
}
  
?>

Viel Spaß
Heiko

Hallo pitti,

vielen Dank für deine Arbeit und das veröffentlichte Skript :slight_smile: Die Installation verlief absolut problemlos und war sehr schnell erledigt.

Gruß
Hans

Danke - auch fürs Testen - Hans, freut mich das alles funzt :smiley:

Gruß
Pitti

Danke, sehr praktisch. Wie bekommt man den passenden Regionscode raus?

In Post 15 bzw. 18 steht die Lösung :smiley: Ansonsten nochmal melden!

Danke Pitti

Ah danke für den Hinweis hatte ich nicht gesehen. Könnte man ja noch in ein PHP Modul packen dann kann man die Region einfach im Konfigurationsformular auswählen ohne die Nummer nachschlagen zu müssen ;).

Bitte und ja, daran habe ich auch schon gedacht, aber ein Modul kostet dann doch noch etwas mehr Zeit :frowning:
Steht bei mir aber auf der IPS-ToDo-Liste.

Baue gerade noch an was anderem und dann ist Aktion „Hausflur“ dran :eek:

Ciao Pitti

Moin,

meine Begeisterung es als Modul zu machen hält sich insofern in Grenzen, da ich es so relativ leicht habe es für IPSView anzupassen. Speziell die HTML Generierung sollte transparent und anpassbar sein :wink:

Gruß
Hans

Ja da hast Du recht es ging auch eher darum die Region einfach zu finden, da wird einem bestimmt noch was praktisches einfallen.

Hallo Fonzo,

was glaubst du wie froh ich bin, dass das Fritz Box Projekt von Nall-chan und das Programm zum Schalten der Heizung per WebFront von swifty als Skript vorliegen. Bei IPSView musst du, wenn du unterschiedliche Clients hast, das Generieren der HTML Befehle manchmal pro Client anpassen :eek: Z. B. werden Schriften häufig anders interpretiert. Mir ist natürlich bewusst, dass User ohne Programmierkenntnisse lieber zum Modul greifen :wink:

@pitti Sorry für off-topic :slight_smile:

Gruß
Hans

Dies ist auch nicht vollständig, weil ja nur die Dinge angezeigt werden, bei denen auch eine Warnung vorliegt, aber als Hilfestellung um den passenden Regionscode zu finden geeignet.


$dwd_raw = file_get_contents("https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json");
$dwd_json = substr($dwd_raw, 24, strlen($dwd_raw)-26);
$dwd_data = json_decode($dwd_json, true);
$regionlist = $dwd_data["warnings"];
$regioncodelist = array();
foreach ($regionlist as $regioncode => $region_data)
{
	$regionname = $region_data["0"]["regionName"];
	$state = $region_data["0"]["state"];
	$regioncodelist[$regionname] = array("region" => $regionname, "state" => $state, "regioncode" => $regioncode);
}
ksort($regioncodelist);
print_r($regioncodelist);

@Hans: kein Problem :wink:

@Fonzo: colle Sache! Hilft bestimmt den einem oder anderem!

Hallo zusammen,

wäre es mit dem Script von Pitti möglich auf bestimmte Unwetter Typen zu reagieren bzw. diese in eine Variable zu schreiben?
Z.B. Wenn Wind / Sturm / Orkan dann Markisen einfahren.

Gruß
Kai

Hi Kai,

Sorry, hatte gar nicht mitbekommen das Du hier einen Frage gestellt hättest. Out of the Box wahrscheinlich nicht, aber die Warnungstypen gibt es ja und man könnte theoretisch schon filtern und dann separat schalten.

Ciao Pitti

Gesendet von iPad mit Tapatalk

Hi Pitti,

kein Problem :wink:

Hast du evtl. vor diese Funktion noch einzubauen, um auf die Warntypen reagieren zu können?

Beste Grüße
Kai