<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Sascha Schmidt</title>
	
	<link>http://blog.schmidt.ps</link>
	<description>My Digital Lifestyle</description>
	<lastBuildDate>Thu, 09 Feb 2012 10:54:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/realriot" /><feedburner:info uri="realriot" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Screenshots mit Mac OS X</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/NMK5Jvw4yfE/</link>
		<comments>http://blog.schmidt.ps/2012/02/09/screenshots-mit-mac-os-x/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 10:54:54 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Betriebssystem]]></category>
		<category><![CDATA[Programm]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=1157</guid>
		<description><![CDATA[Auf der Suche nach einem Programm, mit dem ich unter Mac OS X Screenshots erstellen kann, habe ich die internen Möglichkeiten des Mac Betriebssystems kennengelernt. Es ist sehr einfach einen ganzen Bildschirm, Bereiche oder nur Elemente als Bild in eine Datei zu speichern oder in die Zwischenablage zu kopieren. Tastenkürzel Beschreibung CMD (Apfel)+Shift+3 Den gesamten [...]]]></description>
			<content:encoded><![CDATA[<p>Auf der Suche nach einem Programm, mit dem ich unter Mac OS X Screenshots erstellen kann, habe ich die internen Möglichkeiten des Mac Betriebssystems kennengelernt. Es ist sehr einfach einen ganzen Bildschirm, Bereiche oder nur Elemente als Bild in eine Datei zu speichern oder in die Zwischenablage zu kopieren.</p>
<table>
<tr>
<th>Tastenkürzel</th>
<th>Beschreibung</th>
</tr>
<tr>
<td>CMD (Apfel)+Shift+3</td>
<td>Den gesamten Bildschirminhalt als Datei auf dem Desktop ablegen.</td>
</tr>
<tr>
<td>CMD (Apfel)+Ctrl+Shift+3</td>
<td>Den gesamten Bildschirminhalt als Screenshot in die Zwischenablage kopieren.</td>
</tr>
<tr>
<td>CMD (Apfel)+Shift+4</td>
<td>Den ausgewählten Bereich als Datei auf dem Desktop ablegen.</td>
</tr>
<tr>
<td>CMD (Apfel)+Ctrl+Shift+4</td>
<td>Den ausgewählten Bereich in die Zwischenablage kopieren.</td>
</tr>
<tr>
<td>CMD (Apfel)+Shift+4, danach Leertaste</td>
<td>Ein ausgewähltes Element als Datei auf dem Desktop ablegen.</td>
</tr>
<tr>
<td>CMD (Apfel)+Ctrl+Shift+4, danach Leertaste</td>
<td>Ein ausgewähltes Element in die Zwischenablage kopieren.</td>
</tr>
</table>
<p>Für die Kürzel mit variablen Auswahlbereichen gibt es noch weitere Optionen:</p>
<table>
<tr>
<th>Option</th>
<th>Aktion</th>
</tr>
<tr>
<td>Leertaste</td>
<td>Verschieben des ausgewählten Bereichs.</td>
</tr>
<tr>
<td>Umschalttaste (Shift)</td>
<td>Fixierung des Objekts; kann lediglich in eine Richtung verändert werden.</td>
</tr>
<tr>
<td>Wahltaste (Alt)</td>
<td>Fixierung des Objekts an Ort und Stelle; kann in alle Richtungen gleichzeitig verändert werden.</td>
</tr>
</table>
<p>Die Applikationen <em>Vorschau</em> und <em>Bildschirmfoto</em> bieten weitere Optionen für Screenshots, wie beispielsweise das zeitverzögerten Fotografieren oder das Einblenden des Mauszeigers.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/zmVDfWJBYk9aS4lPcM7UHuIktxM/0/da"><img src="http://feedads.g.doubleclick.net/~a/zmVDfWJBYk9aS4lPcM7UHuIktxM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zmVDfWJBYk9aS4lPcM7UHuIktxM/1/da"><img src="http://feedads.g.doubleclick.net/~a/zmVDfWJBYk9aS4lPcM7UHuIktxM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/NMK5Jvw4yfE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2012/02/09/screenshots-mit-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2012/02/09/screenshots-mit-mac-os-x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=screenshots-mit-mac-os-x</feedburner:origLink></item>
		<item>
		<title>Office 365 – Eine attraktive Alternative zu Google Apps. Oder nicht?</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/W7K3-iU_eCU/</link>
		<comments>http://blog.schmidt.ps/2012/02/08/office-365-eine-attraktive-alternative-zu-google-apps-oder-nicht/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 09:57:30 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[Internet Dienste]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[Office]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=1079</guid>
		<description><![CDATA[Microsoft möchte mit Office 365 eine gleich- bzw. höherwertige Alternative zu Google Apps auf den Markt bringen. Seit einigen Monaten hat dieses Kind Microsofts den Betastatus verlassen und ringt um die Gunst der User. Für Anwender die eine Groupware-Lösung auf Exchange-Basis suchen kann Office 365 eine gute Anlaufstelle sein. Ob und wie reif und vor [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft möchte mit Office 365 eine gleich- bzw. höherwertige Alternative zu Google Apps auf den Markt bringen. Seit einigen Monaten hat dieses Kind Microsofts den Betastatus verlassen und ringt um die Gunst der User. Für Anwender die eine Groupware-Lösung auf Exchange-Basis suchen kann Office 365 eine gute Anlaufstelle sein. Ob und wie reif und vor allem wie stabil das Produkt ist und ob der Community-Support realistisch und nutzbar ist versuche ich im Eigentest. Dazu buche ich das Officeprodukt im P-Plan was preislich nahezu identisch mit dem Angebot von Google ist.</p>
<p>Die Anmeldung zu einer Testphase von Office 365 ist schnell erledigt. Vor- und Nachname, Email und ein Name für eine Subdomain unter <em>.onmicrosoft.com</em> sind die einzigen Angaben die zu machen sind. Über das Loginportal <em>http://portal.microsoftonline.com</em> erfolgen die direkten Logins in die Administrationsoberfläche wo Exchange, Sharepoint und Lync konfiguriert werden können. Auch ist hier die Benutzerverwaltung für die <em>virtuelle Firma</em> hinterlegt.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Administrationsportal.png"><img class="aligncenter size-medium wp-image-1084" title="Office_365_Administrationsportal" src="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Administrationsportal-300x244.png" alt="" width="300" height="244" /></a></p>
<p>An dieser Stelle kann man bereits den ersten Fehler machen, wonach man den Support bemühen muß. Sobald der initial angelegte Administrator-Account gelöscht und durch einen nachträglich definierten Benutzer ersetzt wird, ist es nicht mehr möglich die Sharepoint Teamseiten zu administrieren. Weder die Webseitenkonfiguration noch die Rechteverwaltung funktionieren. Recherchen im Community-Forum ergaben, dass an diesem Punkt nur noch der Support helfen kann. Dazu muß man lediglich ein <a title="Office 365 service request" href="https://portal.microsoftonline.com/Support/NewSignupServiceRequest.aspx" target="_blank">Ticket</a> öffnen und auf entsprechend schnelle Bearbeitung hoffen.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Fehler_Sharepoint_Administration.png"><img class="aligncenter size-full wp-image-1086" title="Office_365_Fehler_Sharepoint_Administration" src="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Fehler_Sharepoint_Administration.png" alt="" width="279" height="86" /></a></p>
<p><strong>Mein Tipp:</strong> Den initial angelegten Administrator-Account niemals löschen. Nur mit diesem User können die meisten Einstellungen rückgängig gemacht werden.</p>
<p>Nachdem alle Organisations-Einstellungen auf die individuellen Bedürfnisse angepasst und benötigte Mailbox-User angelegt wurden, kann es an die Migration bestehender Postfächer gehen. Microsoft bietet hier, wie Google auch, seinen Benutzern eine Schnittstelle zur einfachen Migration eines IMAP bzw. Exchange-Accounts.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_01.png"><img class="aligncenter size-medium wp-image-1097" title="Office_365_Email_Migration_01" src="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_01-300x290.png" alt="" width="300" height="290" /></a></p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_02.png"><img class="aligncenter size-medium wp-image-1098" title="Office_365_Email_Migration_02" src="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_02-300x290.png" alt="" width="300" height="290" /></a></p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_03.png"><img class="aligncenter size-medium wp-image-1099" title="Office_365_Email_Migration_03" src="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_03-300x289.png" alt="" width="300" height="289" /></a></p>
<p>Selbstverständlich besteht auch die Möglichkeit eines Massenimports, da die zu importierenden Postfächer in einer .cvs Datei abgelegt werden.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_04.png"><img class="aligncenter size-medium wp-image-1100" title="Office_365_Email_Migration_04" src="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Email_Migration_04-300x289.png" alt="" width="300" height="289" /></a></p>
<p>Das Format der .csv Datei ist sehr simpel:</p>
<pre>EmailAddress,UserName,Password
benutzer1@office365domain.onmicrosoft.com,benutzer1@gmail.com,"passwort"
benutzer2@office365domain.onmicrosoft.com,benutzer2@gmail.com,"passwort"</pre>
<p>In einem Rutsch können so parallel und zeitgleich maximal 10 User migriert werden. Bei mehr als 10 zu migrierenden Konten werden diese in eine Warteschlange eingereiht. Ein riesen Pro gegenüber der Variante von Google ist, dass die Migration läuft bis man sie manuell beendet. Das würde dann geschehen, wenn alle DNS-Einträge umgebogen und eventuelle Weiterleitungen angepasst wurden. Solange der Prozess aktiv ist, werden alle zu migrierenden Postfächer im Sync gehalten. Somit ist gewährleistet, dass keine Emails verloren gehen und alle kopiert werden.<br />
Da der Office 365 Exchange zusätzlich über die mächtige Powershell administrierbar ist, lag der Gedanke nahe den Prozess dort zu beenden. Doch auch das ist nicht möglich.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Migrationsfehler_Powershell.jpg"><img class="aligncenter size-medium wp-image-1120" title="Office_365_Migrationsfehler_Powershell" src="http://blog.schmidt.ps/wp-content/uploads/2012/02/Office_365_Migrationsfehler_Powershell-300x238.jpg" alt="" width="300" height="238" /></a></p>
<p><strong>Mein Tipp:</strong> Niemals Änderungen an Benutzerkonten durchführen, solange der Migrationsprozess läuft und nicht vollständig abgeschlossen ist.</p>
<p>Sobald die komplette <em>Firma </em>konfiguriert ist und alle Emails migriert sind kann der Umzug durch die Imports (der Exports aus Googlemail) von Kontakten und Kalendereinträgen abgeschlossen werden.</p>
<p><strong>Was geht sonst noch&#8230;</strong></p>
<ul>
<li>Eine eigene Domain kann auch in das Office 365 System konfiguriert werden. Dazu wird lediglich einmalig mit einem zu konfigurierenden DNS-Eintrag die Inhaber-Berechtigung überprüft. Somit lassen sich pro Postfach und Benutzer viele Alternativadressen konfigurieren, die dann empfangen und ins Postfach ausgeliefert werden.</li>
<li>Outlook/Exchange typisch können sehr leicht Verteiler eingerichtet und verwaltet werden. Dazu wird lediglich eine sog. <em>Distribution Group</em> angelegt und mit den gewünschten Optionen konfiguriert. Mitglieder der Liste, die nicht zu der <em>Organisation</em> gehören, müssen vorher als Externe Kontakte eingerichtet werden.</li>
<li>Im Administrationsinterface können alle wichtigen Einstellungen bzgl. der Exchange-Infrastruktur vorgenommen werden. Wie zum Beispiel:
<ul>
<li>Verwalten von Weiterleitungen.</li>
<li>Konfigurieren von Administrator- und Benutzerrollen.</li>
<li>Erstellen von Überwachungs- und Auswertungsberichte.</li>
<li>Zugriff auf die ActiveSync Einstellungen und Geräterichtlinien.</li>
</ul>
<p>Das ist jedoch nur ein kleiner Teil der Möglichkeiten, die eine Exchange-Lösung bietet. Viele weitere Administrationsmöglichkeiten bietet die PowerShell.</p>
<p><strong>SPAM und Antivirus</strong><br />
Microsoft möchte seine Benutzer durch FOPE (Forefront Online Protection for Exchange Suite) vor Spam und Viren schützen. Die Schnittstelle ist für jeden Account vorkonfiguriert aber nicht individuell einstellbar. Ich habe in den letzten Jahren sehr viele gute Erfahrungen mit dem Spam-Scanner von Googlemail gemacht. Bis auf 2-3 nicht erkannte Spammails pro Woche wurde der größte Teil herausgefiltert. <em>False positive</em> Emails gab es nahezu keine. Die Spam-Erkennungsrate von Office 365 ist absolut entäuschend. Pro Stunde landen 20-30 Spammails im Posteingang, die vorher fein säuberlich durch die Googleprozesse herausgefiltert wurden. Ich hoffe, dass der Scanner von Microsoft &#8220;<em>lernt</em>&#8221; und langfristig ein besseres Ergebnis liefern wird.</p>
<p><strong>Fazit</strong><br />
Für aktuelle 5,25 EUR pro Monat und Benutzer bekommt man von Microsoft eine solide Exchangelösung geboten. Wer bei der Einrichtung ein paar Dinge beachtet, hat die Migration sehr schnell umgesetzt und kann mit der neuen Infrastruktur leben. In meinem einwöchigen Test konnte der Spam-Scanner von Microsoft jedoch absolut nicht überzeugen. Der Support, welcher in diesem günstigen Tarif auf einer von Microsoft moderierten Community basiert, ist für deutsche Kunden quasi nicht existent. Stellt man im amerikanischen Forum seine Fragen, werden diese wahrscheinlich beantwortet, meist jedoch ohne eine Lösung. Bei technischen Problemen ist kein direkter Ansprechpartner vorhanden.</p>
<p>Jetzt stellt sich die Frage, ob man nicht 4 EUR mehr pro Monat ausgibt, um bei Problemen persönlichen technischen Support zu haben und direkten Einfluss auf den Spam-Scanner zu nehmen. Leider schmilzt dann aber der preisliche Vorteil von Office 365 gegenüber dem <em>hosted Exchange</em> Produkt vieler Anbieter dahin.</p>
<p>Office 365 ist eine direkte Konkurrenz zu Google Apps. Die nativen Exchange Vorteile von Microsoft liegen auf der Hand. Wer mit den bisher noch vorhandenen Schwächen leben kann, ist mit Office 365 gut bedient. Falls die Prioritäten jedoch <em>etwas</em> anders liegen und kompetenter Support und eine bereits eingespielte funktionierende Infrastruktur wichtig sind, dann sollte meiner Meinung nach von der Microsoft-Lösung bisher noch Abstand genommen werden.</p>
<p>Office 365 ist auf dem guten Weg, aber bisher noch nicht komplett angekommen.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/kPlyP8RPsvf4h4h-I5UGI1wPyrg/0/da"><img src="http://feedads.g.doubleclick.net/~a/kPlyP8RPsvf4h4h-I5UGI1wPyrg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/kPlyP8RPsvf4h4h-I5UGI1wPyrg/1/da"><img src="http://feedads.g.doubleclick.net/~a/kPlyP8RPsvf4h4h-I5UGI1wPyrg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/W7K3-iU_eCU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2012/02/08/office-365-eine-attraktive-alternative-zu-google-apps-oder-nicht/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2012/02/08/office-365-eine-attraktive-alternative-zu-google-apps-oder-nicht/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=office-365-eine-attraktive-alternative-zu-google-apps-oder-nicht</feedburner:origLink></item>
		<item>
		<title>Mein neues und erstes MacBook Pro – Eindrücke</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/19p3vPSUETI/</link>
		<comments>http://blog.schmidt.ps/2012/02/04/mein-neues-und-erstes-macbook-pro-eindrucke/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 11:20:13 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Notebook]]></category>
		<category><![CDATA[PC]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=1044</guid>
		<description><![CDATA[Ich war sehr neugierig, aufgeregt und konnte es kaum erwarten mein erstes MacBook in den Händen zu halten. Seit einigen Tagen ist es da und wurde, wie im vorherigen Artikel vermutet, mit UPS geliefert. Verpackt war das Gerät in einem recht stylischen Pappkoffer. Nach flinkem Auspacken und den ersten Inspektionen konnte ich die sehr gute [...]]]></description>
			<content:encoded><![CDATA[<p>Ich war sehr neugierig, aufgeregt und konnte es kaum erwarten mein erstes MacBook in den Händen zu halten. Seit einigen Tagen ist es da und wurde, wie im vorherigen Artikel vermutet, mit UPS geliefert.</p>
<p>Verpackt war das Gerät in einem recht stylischen Pappkoffer. Nach flinkem Auspacken und den ersten Inspektionen konnte ich die sehr gute Qualität, über die viel gesprochen wird, bestätigen. Das Alu-Gehäuse, der flache Bildschirm, der Tastaturanschlag und der Gesamteindruck sind definitv überzeugend. Das Notebook fühlt sich absolut wertig an. Mein Gerät hat nicht die für das MacBook Pro typische Glasscheibe vor dem Bildschirm, sondern das Display ist hinter einem Alurahmen eingelassen. Das liegt daran, dass ich mich für die entspiegelte (Antiglare) Version des Panels entschieden habe.</p>
<p>Gewöhnungbedürftig ist das große Touchpad (ist nicht nur ein Trackpad) und das absolut zum PC unterschiedliche Tastaturlayout. Das @-Zeichen, Backslash, die Pipe und Co. musste ich erst einmal suchen&#8230;</p>
<div id="attachment_1072" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_zugeklappt.jpg"><img class="size-medium wp-image-1072" title="macbook_pro_late_2011_zugeklappt" src="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_zugeklappt-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Außenansicht des Macbooks. Sehr schön erkennbar ist das flache Design und der Unibody.</p></div>
<div id="attachment_1071" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_seitenansicht.jpg"><img class="size-medium wp-image-1071" title="macbook_pro_late_2011_seitenansicht" src="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_seitenansicht-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Auf der linken Seite befinden sich alle bereitgestellten Anschlüsse.</p></div>
<div id="attachment_1070" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_aufgeklappt.jpg"><img class="size-medium wp-image-1070" title="macbook_pro_late_2011_aufgeklappt" src="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_aufgeklappt-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Insgesamt wirkt das 17 Zoll Gerät sehr wuchtig.</p></div>
<div id="attachment_1069" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_seitenprofil.jpg"><img class="size-medium wp-image-1069" title="macbook_pro_late_2011_seitenprofil" src="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_seitenprofil-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Im Hintergrund befindet sich eine Fensterfront. Das Display ist gründlich entspiegelt.</p></div>
<div id="attachment_1067" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_antiglare_bildschirm.jpg"><img class="size-medium wp-image-1067" title="macbook_pro_late_2011_antiglare_bildschirm" src="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_antiglare_bildschirm-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Da der Antiglare Bildschirm keine Glasfront besitzt, kann man hier ein kleines Spaltmaß zwischen Panel und Einfassung erkennen.</p></div>
<div id="attachment_1068" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_tastatur.jpg"><img class="size-medium wp-image-1068" title="macbook_pro_late_2011_tastatur" src="http://blog.schmidt.ps/wp-content/uploads/2012/01/macbook_pro_late_2011_tastatur-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Die sehr angenehme Macbook Tastatur und das schön große Trackpad.</p></div>
<p><strong>Erste Schritte mit Mac OS</strong><br />
Die Inbetriebnahme war sehr einfach. Lediglich einige wenige Informationen wurden abgefragt, bevor der Desktop von Mac OS erschienen ist. Mir gingen viele Namen von Programmen durch den Kopf, die ich auf dem PC unter Windows einsetze. Die Meisten davon gibt für den Mac jedoch nicht. Durch Twitter, Facebook und G+ bin ich an eine <em>empfohlene</em> Grundausstattung gekommen:</p>
<p><strong>Dropbox</strong><br />
Ein Datendienst, der angegebene Ordner/Dateien in die Cloud läd und auf andere Geräte synchronisieren kann. Der Client ist mit dem unter Windows identisch.</p>
<p><strong>KeepPassX</strong><br />
Ein nativer Mac OS Client für den KeePass Passwortspeicher.</p>
<p><strong>Google Chrome</strong><br />
Mein Lieblingsbrowser. Bisher konnte ich mich nicht mit Safari anfreunden.</p>
<p><strong>MacPorts</strong><br />
Pakete, die zusätzliche Funktionen, Dienste und Programme zur Verfügung stellen. Ist vom Prinzip her identisch mit der FreeBSD Portsammlung. Über diesen Zweig des Betriebssystems bekommt man beispielsweise recht einfach Tools wie <strong>wget</strong>, <strong>wine</strong>, usw&#8230;</p>
<p><strong>Echofon</strong><br />
Ein sehr schöner, schneller und brauchbarer Twitterclient, den es auch für das iPhone gibt. Einer der positiven Aspekte ist die Lesesychronisierung mit mobilen Endgeräten.</p>
<p><strong>Adium</strong><br />
Der Multiprotokoll-Messenger ist für mich eine Pflicht, da viele meiner Kontakte auf verschiedene soziale Netzwerke verteilt sind.</p>
<p><strong>Xee</strong><br />
Eine Alternative zu Apples Standardprogramm &#8220;Vorschau&#8221; um Bilder zu betrachen und schnell durch Ordner undBilder zu blättern.</p>
<p><strong>Microsoft Office 2011 für Mac</strong><br />
Vielleicht noch ein wenig alte &#8220;Heimat&#8221;. Da ich beruflich sehr viel Office einsetze, gibt es letztendlich keine Alternative zu diesem Microsoft Office Produkt.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/k3SSCaXXpilUwY0JVnBIiFWIFnY/0/da"><img src="http://feedads.g.doubleclick.net/~a/k3SSCaXXpilUwY0JVnBIiFWIFnY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/k3SSCaXXpilUwY0JVnBIiFWIFnY/1/da"><img src="http://feedads.g.doubleclick.net/~a/k3SSCaXXpilUwY0JVnBIiFWIFnY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/19p3vPSUETI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2012/02/04/mein-neues-und-erstes-macbook-pro-eindrucke/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2012/02/04/mein-neues-und-erstes-macbook-pro-eindrucke/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mein-neues-und-erstes-macbook-pro-eindrucke</feedburner:origLink></item>
		<item>
		<title>Vom PC zum Mac in Nullkommanix</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/Xgh_pztymSQ/</link>
		<comments>http://blog.schmidt.ps/2012/01/18/vom-pc-zum-mac-in-nullkommanix/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 19:21:52 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Notebook]]></category>
		<category><![CDATA[PC]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=1036</guid>
		<description><![CDATA[Ungefähr sechs Jahre ist es nun her, dass ich mir einen neuen PC geleistet habe. Diese Zeit war auch in den letzten Jahren immer der durchschnittliche Lifecycle meiner Rechner. Nun ist es jedoch soweit, dass mir ein neuer Rechenknecht ins Haus kommt. Viele Artikel in einschlägigen Blogs, Empfehlungen von Freunden, Kollegen und Bekannten und letztendlich [...]]]></description>
			<content:encoded><![CDATA[<p>Ungefähr sechs Jahre ist es nun her, dass ich mir einen neuen PC geleistet habe. Diese Zeit war auch in den letzten Jahren immer der durchschnittliche Lifecycle meiner Rechner. Nun ist es jedoch soweit, dass mir ein neuer Rechenknecht ins Haus kommt. Viele Artikel in einschlägigen Blogs, Empfehlungen von Freunden, Kollegen und Bekannten und letztendlich meine Neugier haben mich dazu bewogen, es mit einem Mac zu probieren. Es gibt wenige Geräte von Apple, die für mich in Frage gekommen sind; der iMac und das Macbook Pro, für welches ich mich dann auch entschieden habe.</p>
<p>Ich habe mich für die 17 Zoll Variante entschieden, da Mobilität für mich nicht unbedingt zählt. Vom Sofa zum Esstisch, in die Küche, auf LAN-Parties oder zu Freunden würde das Gerät mitkommen. Daher ist für mich ein größeres Display einfach wichtiger als der Transportfaktor. Auch habe ich das spiegelnde Display durch die blendfreie und hochauflösende Version ersetzt. Die Daten wird zukünftig eine 256 GB SSD halten und mir hoffentlich hohe Performance bescheren. </p>
<p>Jeder kennt das Problem, wenn neue Hardware bestellt wurde: Wie lange dauert die Lieferung und wann ist die neue &#8220;<em>Spielerei</em>&#8221; endlich da. Apple macht den Ablauf für CTO (Configure-To-Order) Geräte sehr spannend. Nach der Bestellung wurde mir im Bestellstatus ein Datum in zweiwöchiger Entfernung genannt. Nach ca. 3 Tagen veränderte sich der Bestellstatus im Onlineportal auf &#8220;<em>Versendet</em>&#8220;. In der Apple-Welt bedeutet dies jedoch nur, dass das zusammengebaute Notebook aus China auf dem Weg ins europäische Zwischenlager in Irland oder der Tschechei (&#8220;<em>Merge In Tnst CZ Pra</em>&#8220;) ist. &#8220;<em>Expeditors</em>&#8221; und &#8220;<em>Schenker BV</em>&#8221; sind die Spediteure, die mein Macbook zum Zwischenlager bringen, wo es dann letztendlich die Reise zu mir via UPS antreten wird.</p>
<p>Alle Informationen zum Bestell- und Lieferablauf habe ich mir aus den verschiedensten Foren und Blogposts zusammengesammelt, da Apple keine erweiterten Hilfetexte zu den Stati zur Verfügung stellt.</p>
<p>Die Vorfreude auf meinen ersten Mac ist trotz der langen Lieferzeit absolut ungebrochen&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/eAI_LUlprIxd4RfHy_R7P747Zp8/0/da"><img src="http://feedads.g.doubleclick.net/~a/eAI_LUlprIxd4RfHy_R7P747Zp8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/eAI_LUlprIxd4RfHy_R7P747Zp8/1/da"><img src="http://feedads.g.doubleclick.net/~a/eAI_LUlprIxd4RfHy_R7P747Zp8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/Xgh_pztymSQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2012/01/18/vom-pc-zum-mac-in-nullkommanix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2012/01/18/vom-pc-zum-mac-in-nullkommanix/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=vom-pc-zum-mac-in-nullkommanix</feedburner:origLink></item>
		<item>
		<title>IP-Symcon Script – Wetterstation für wetterpool.de</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/Fp_45Rry_GA/</link>
		<comments>http://blog.schmidt.ps/2012/01/11/ip-symcon-script-wetterstation-fur-wetterpool-de/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 20:03:46 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[IP-Symcon]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Wetter]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=1026</guid>
		<description><![CDATA[Dieses Script überträgt die von IP-Symcon ermittelten Wetterdaten an die Community von wetterpool.de. &#60;?php // Zugangs-/Accountinformationen zur API von wetterpool.de $wpuser = 'USERID'; $wppass = 'PASSWORT'; $wphost = 'www.wetterpool.de'; $wpport = '80'; $wptimeout = '30'; $wpurl = '/import/wswin_directpost.php'; // Eigene Werte aufbereiten: $tempmaxmin = maxmin_val("TMAXMIN", GetValue(57080 /*[Garten\Klima\TEMPERATURE]*/)); // Variablen auf Basis der API von wetterpool.de [...]]]></description>
			<content:encoded><![CDATA[<p>Dieses Script überträgt die von IP-Symcon ermittelten Wetterdaten an die Community von <strong>wetterpool.de</strong>.</p>
<pre>
&lt;?php
// Zugangs-/Accountinformationen zur API von wetterpool.de
$wpuser    = 'USERID';
$wppass    = 'PASSWORT';
$wphost    = 'www.wetterpool.de';
$wpport    = '80';
$wptimeout = '30';
$wpurl     = '/import/wswin_directpost.php';

// Eigene Werte aufbereiten:
$tempmaxmin = maxmin_val("TMAXMIN", GetValue(57080 /*[Garten\Klima\TEMPERATURE]*/));

// Variablen auf Basis der API von wetterpool.de
// http://www.wetterpool.de/tab_plugin.php
// Der String "- -" definiert, dass dieses Plugin für diesen Parameter keinen
// Wert bereitstellt (UNBEDINGT immer genau definieren welche Werte vorhanden sind!).
$tcur = preg_replace("/\./", ",", sprintf("%+.2f", GetValue(57080 /*[Garten\Klima\TEMPERATURE]*/)));    // Aktuelle Temperatur, 2m Höhe, Grad Celsius, Dezimalzahl x1 = (+/-)x,yz
$tmin = preg_replace("/\./", ",", sprintf("%+.2f", $tempmaxmin[0]));		 // Minimaltemperatur des Tages, 2m Höhe, Grad Celsius, Dezimalzahl x1 = (+/-)x,yz
$tmax = preg_replace("/\./", ",", sprintf("%+.2f", $tempmaxmin[1]));		 // Maximaltemperatur des Tages, 2m Höhe, Grad Celsius, Dezimalzahl x1 = (+/-)x,yz
$t5min = "- -";	// Minimaltemperatur des Tages, 5cm Höhe, Grad Celsius, Dezimalzahl x1 = (+/-)x,yz
$tcm30 = "- -";   // Temperaturänderung letzte 30 Minuten, 2m Höhe, Grad Celsius, Dezimalzahl x1 = (+/-)x,yz
$tch1 = "- -";    // Temperaturänderung letzte 60 Minuten, 2m Höhe, Grad Celsius, Dezimalzahl x1 = (+/-)x,yz
$tdm1 = "- -";    // Temperaturabweichung des Monats vom 30-jährigen Mittel, Grad Celsius, Dezimalzahl x1 = (+/-)x,yz
$rhcur = GetValue(32760 /*[Garten\Klima\HUMIDITY]*/);   // Aktuelle relative Luftfeuchte, 2m Höhe, Prozent, Ganzzahl 0<=x1<=100
$rrh1 = "- -";    // Regenmenge letzte 60 Minuten (1h), Millimeter, Dezimalzahl x1 = (+)x,yz
$rrh2 = "- -";    // Regenmenge letzte 120 Minuten (2h), Millimeter, Dezimalzahl x1 = (+)x,yz
$rrh6 = "- -";    // Regenmenge letzte 360 Minuten (6h), Millimeter, Dezimalzahl x1 = (+)x,yz
$rrh12 = "- -";   // Regenmenge letzte 720 Minuten (12h), Millimeter, Dezimalzahl x1 = (+)x,yz
$rrh24 = "- -";   // Regenmenge letzte 1440 Minuten (24h), Millimeter, Dezimalzahl x1 = (+)x,yz
$rrd1 = "- -";    // Regenmenge aktueller Tag (0 Uhr bis x Uhr), Millimeter, Dezimalzahl x1 = (+)x,yz
$rrm1 = "- -";    // Regenmenge aktueller Monat, Millimeter, Dezimalzahl x1 = (+)x,yz
$rry1 = "- -";    // Regenmenge aktuelles Jahr, Millimeter, Dezimalzahl x1 = (+)x,yz
$rrdm1 = "- -";   // Regenmengenabweichung aktueller Monat vom 30-jährigen Mittel, Prozent, Ganzzahl x1>=0
$sund1 = "- -";   // Sonnenscheindauer aktueller Tag (0 Uhr bis x Uhr), Stunde, Ganzzahl 0<=x1<=24
$sunh1 = "- -";   // Sonnenscheindauer letzte 60 Minuten, Minute, Ganzzahl 0<=x1<=60
$wcur = "- -";    // Aktuelle Windgeschwindigkeit, 10m Höhe, Kilometer pro Stunde, Dezimalzahl x1 = (+)x,yz
$wdir = "- -";    // Aktuelle Windrichtung, 10m Höhe, Grad, Dezimalzahl 0<=x1<=360
$wcura = "- -";   // 10minütiger Durchschnitt - Windgeschwindigkeit, 10m Höhe, Kilometer pro Stunde, Dezimalzahl x1 = (+)x,yz
$wdira = "- -";   // 10minütiger Durchschnitt - Windrichtung, 10m Höhe, Grad, Dezimalzahl 0<=x1<=360
$wmx = "- -";     // Maximale Windgeschwindigkeit (Böe) aktueller Tag (0 Uhr bis x Uhr), Kilometer pro Stunde, Dezimalzahl x1 = (+)x,yz
$pcur = "- -";    // Aktueller Luftdruck (mit Höhenkorrektur!), HectoPascal, Dezimalzahl x1 = (+)x,yz
$pch1 = "- -";    // Luftdruckänderung letzte 60 Minuten (1h), HectoPascal, Dezimalzahl x1 = (+/-)x,yz
$pch3 = "- -";    // Luftdruckänderung letzte 180 Minuten (3h), HectoPascal, Dezimalzahl x1 = (+/-)x,yz
$clcnb = "- -";   // Bedeckungsgrad Achtel, Ganzzahl 0<=x1<=8
$hgtnn = "2";     // Stationshöhe über Normalnull, Meter, Ganzzahl
$daoni = "- -";   // Tag oder Nacht, Wert wird als Wort geschrieben, x1 = {day,night}
$snhgt = "- -";   // Gemessene Schneehöhe, Centimeter, Ganzzahl
$snhtd = "- -";   // Datum der gemessenen Schneehöhe, Stunden/Minuten Tag/Monat/Jahr, x1 = hh:mm dd.mm.YYYY
$snl = "- -";     // Berechnete Schneefallgrenze, Meter, Ganzzahl
$lxcur = "- -";   // Aktueller Helligkeitswert, kLux, Dezimalzahl x1 = (+)x,yz
$lxmax = "- -";   // Maximaler Helligkeitswert des Tages, kLux, Dezimalzahl x1 = (+)x,yz
$time = date("H:i");    // Zeit, Stunden/Minuten, x1 = hh:mm
$date = date("d.m.Y");  // Datum, Tag/Monat/Jahr, x1 = dd.mm.YYYY
$plgnv = "1.0";			// Plugin-Version, Versionszahl x1 = x.yz

/***************************************************************************
* Übermittlung der aufbereiteten Daten an die API.
*
* Rückgabewert:
*  TRUE  Alle Daten wurden erfolgreich angenommen und verarbeitet.
*  FALSE Es ist ein Fehler aufgetreten. Dieser wird zeitgleich IPS-Log
*        geschrieben.
***************************************************************************/

function apirequest($wphost, $wpport,$wptimeout, $wpurl, $wpdata)
{
	// Ausführen des GET-Requests.
	$result    = false;
	$resultmsg = "";
	$fp = fsockopen($wphost, $wpport, $errno, $errstr, $wptimeout);
	if($fp)
	{
		$request = "GET ". $wpurl ."?data=$wpdata HTTP/1.1\r\n";
		$request.= "Host: ". $wphost ."\r\n";
		$request.= "Connection: Close\r\n\r\n";

		// Auswerten der Antwort.
		$data = "";
		fwrite($fp, $request);
		while (!feof($fp))
		{
			$data .= fgets($fp, 128);
		}
		fclose($fp);

		// Überprüfen ob die gemeldeten Werte korrekt verarbeitet wurden.
		$resultmsg = $data;
		if ( preg_match("/ok/i", $data) )
			$result = true;
	}

	if ( $result == false )
	{
  		IPS_LogMessage("WETTERPOOL.DE", "Meldung fehlgeschlagen!\n$resultmsg");
		return false;
	} else
	{
		return true;
	}
}

/***************************************************************************
* Funktion um Werte zu speichern und Durchschnittswerte zu berechnen.
* Werte werden in 24 Stunden vorgehalten.
*
* Parameter:
*  $varname   Name der Variablen, in der die Werte gespeichert werden.
*  $val       Der zu speichernde Wert
*  $avg_min   Anzahl der Minuten, aus den ein Durchschnitt errechnet wird.
*             NULL um keinen Durchschnitt zu berechnen.
* Rückgabe:
*  Durchschnittswert oder TRUE falls keine Berechnung gewünscht wurde.
***************************************************************************/
function average_val($varname, $val, $avg_min)
{
   $varid = @IPS_GetVariableIDByName($varname, $GLOBALS["IPS_SELF"]);

	// Falls der Wertespeicher nicht vorhanden ist, muss dieser angelegt werden.
	if ( $varid == 0 )
	{
	   $varid = IPS_CreateVariable(3);
	   IPS_SetName($varid, $varname);
	   IPS_SetParent($varid, $GLOBALS["IPS_SELF"]);
	}

	// Löschen von Daten die älter als 24 Stunden sind.
	$value = "";
	if ( GetValue($varid) != "" )
	{
		$hist_data = preg_split("/\|/", GetValue($varid));
		foreach ( $hist_data as $item )
		{
		   list($vtime, $vdata) = preg_split("/;/", $item);
		   if ( (time()-86400) > $vtime )
				continue;

			if ( $value != "" )
		   	$value .= "|";
			$value .= "$vtime;$vdata";
		}
	}

	// Aktuellen Wert der Wertetabelle hinzufügen.
	if ( $value != "" )
   	$value .= "|";
	$value .= time() .";". $val;
	SetValue($varid, $value);

	// Den Durchschnittswert der letzten Minuten ($avg_min) berechnen.
	if ( $avg_min != NULL )
	{
		$hist_data = preg_split("/\|/", GetValue($varid));

	   $result = 0;
	   $dcount = 0;
		foreach ( $hist_data as $item )
		{
         list($vtime, $vdata) = preg_split("/;/", $item);
         if ( time()-(180*60) > $vtime )
            $continue;

			$dcount++;
			$result = $result+$vdata;
		}
		return sprintf("%+.2f", $result/$dcount);
	}
	return true;
}

/***************************************************************************
* Funktion um MAX und MIN Werte des Tages zu erhalten und zu speichern.
*
* Parameter:
*  $varname   Name der Variablen, in der die Werte gespeichert werden.
*  $val       Der zu speichernde Wert (falls nicht gesetzt, wird nur MIN und MAX
*             zurückgegeben.
*  $avg_min   Anzahl der Minuten, aus den ein Durchschnitt errechnet wird.
*             NULL um keinen Durchschnitt zu berechnen.
* Rückgabe:
*  Array mit MIN(0) und MAX(1) Wert.
***************************************************************************/
function maxmin_val($varname, $val)
{
	$result = array(0);
   $varid = @IPS_GetVariableIDByName($varname, $GLOBALS["IPS_SELF"]);

	// Falls der Wertespeicher nicht vorhanden ist, muss dieser angelegt werden.
	if ( $varid == 0 )
	{
	   $varid = IPS_CreateVariable(3);
	   IPS_SetName($varid, $varname);
	   IPS_SetParent($varid, $GLOBALS["IPS_SELF"]);
	}

	// Zurücksetzen des Wertespeichers, falls die letzten Daten von "gestern" sind.
   if ( GetValue($varid) != "" )
	{
		list($vdate, $vmin, $vmax) = preg_split("/;/", GetValue($varid));
	   $date = date("Ymd");

	   if ( $date != $vdate )
	   {
			if ( $val != NULL )
				SetValue($varid, date("Ymd") .";". $val .";". $val);
	   } else
	   {
			if ( $val != NULL )
			{
				// Falls der gemeldete Wert kleiner als MIN ist.
				if ( $val < $vmin )
				   $vmin = $val;
				// Falls der gemeldete Wert größer als MAX ist.
				if ( $val > $vmax )
				   $vmax = $val;
	         SetValue($varid, $vdate .";". $vmin .";". $vmax);
			}

			$result[0] = sprintf("%+.2f", $vmin);
			$result[1] = sprintf("%+.2f", $vmax);
			return $result;
	   }
	} else
	{
		// Wert setzen falls gefordert.
		if ( $val != NULL )
			SetValue($varid, date("Ymd") .";". $val .";". $val);

		$result[0] = sprintf("%+.2f", $val);
		$result[1] = sprintf("%+.2f", $val);
		return $result;
	}
	return TRUE;
}

// Daten für das Senden vorbereiten und in das korrekte Format bringen.
$wpdata = "$wpuser;";
$wpdata .= md5($wppass) .";;";
$wpdata .= "(TCUR_ $tcur);";
$wpdata .= "(TMIN_ $tmin);";
$wpdata .= "(TMAX_ $tmax);";
$wpdata .= "(T5MIN $t5min);";
$wpdata .= "(TCM30 $tcm30);";
$wpdata .= "(TCH1_ $tch1);";
$wpdata .= "(TDM1_ $tdm1);";
$wpdata .= "(RHCUR $rhcur);";
$wpdata .= "(RRH1_ $rrh1);";
$wpdata .= "(RRH2_ $rrh2);";
$wpdata .= "(RRH6_ $rrh6);";
$wpdata .= "(RRH12 $rrh12);";
$wpdata .= "(RRH24 $rrh24);";
$wpdata .= "(RRD1_ $rrd1);";
$wpdata .= "(RRM1_ $rrm1);";
$wpdata .= "(RRY1_ $rry1);";
$wpdata .= "(RRDM1 $rrdm1);";
$wpdata .= "(SUND1 $sund1);";
$wpdata .= "(SUNH1 $sunh1);";
$wpdata .= "(WCUR_ $wcur);";
$wpdata .= "(WDIR_ $wdir);";
$wpdata .= "(WCURA $wcura);";
$wpdata .= "(WDIRA $wdira);";
$wpdata .= "(WMX__ $wmx);";
$wpdata .= "(PCUR_ $pcur);";
$wpdata .= "(PCH1_ $pch1);";
$wpdata .= "(PCH3_ $pch3);";
$wpdata .= "(CLCNB $clcnb);";
$wpdata .= "(HGTNN $hgtnn);";
$wpdata .= "(DAONI $daoni);";
$wpdata .= "(SNHGT $snhgt);";
$wpdata .= "(SNHTD $snhtd);";
$wpdata .= "(SNL__ $snl);";
$wpdata .= "(LXCUR $lxcur);";
$wpdata .= "(LXMAX $lxmax);";
$wpdata .= "(TIME_ $time);";
$wpdata .= "(DATE_ $date);";
$wpdata .= "(PLGNV $plgnv)";

$wpdata = urlencode($wpdata);

// DEBUG-Ausgabe des Rohdaten-String.
//echo "http://". $wphost . $wpurl . "?data=". $wpdata ."\n";

// Daten senden.
if ( apirequest($wphost, $wpport, $wptimeout, $wpurl, $wpdata) )
{
	IPS_LogMessage("WETTERPOOL.DE", "Meldung erfolgreich!");
}
?&gt;
</pre>

<p><a href="http://feedads.g.doubleclick.net/~a/OdjzRLqIyxjkJalugKERSIGTKxs/0/da"><img src="http://feedads.g.doubleclick.net/~a/OdjzRLqIyxjkJalugKERSIGTKxs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/OdjzRLqIyxjkJalugKERSIGTKxs/1/da"><img src="http://feedads.g.doubleclick.net/~a/OdjzRLqIyxjkJalugKERSIGTKxs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/Fp_45Rry_GA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2012/01/11/ip-symcon-script-wetterstation-fur-wetterpool-de/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2012/01/11/ip-symcon-script-wetterstation-fur-wetterpool-de/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ip-symcon-script-wetterstation-fur-wetterpool-de</feedburner:origLink></item>
		<item>
		<title>IP-Symcon Script – Wetterstation für wetter.com</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/V5pO-aC3nXI/</link>
		<comments>http://blog.schmidt.ps/2011/11/01/ip-symcon-script-wetterstation-fur-wetter-com/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 19:49:30 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[IP-Symcon]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Wetter]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=1012</guid>
		<description><![CDATA[Mit folgendem Script können die Daten der eigenen Hausautomatisierungs-Sensoren an die Community von wetter.com gemeldet werden. Dort sind die Werte dem jeweiligen Standort zugeordnet und somit für andere Benutzer ersichtlich und werden für erweiterte Wetter-Prognosen der Region herangezogen. Um die Werte automatisiert zu melden, sollte ein Timer von 15 Minuten erstellt werden. &#60;?php // Zugangs-/Accountinformationen [...]]]></description>
			<content:encoded><![CDATA[<p>Mit folgendem Script können die Daten der eigenen Hausautomatisierungs-Sensoren an die Community von <strong>wetter.com</strong> gemeldet werden. Dort sind die Werte dem jeweiligen Standort zugeordnet und somit für andere Benutzer ersichtlich und werden für erweiterte Wetter-Prognosen der Region herangezogen.</p>
<p>Um die Werte automatisiert zu melden, sollte ein Timer von 15 Minuten erstellt werden.</p>
<pre>
&lt;?php
// Zugangs-/Accountinformationen zur API von wetter.com
// Die Variable $test auf "no" setzen, um das Script scharf zu schalten.
$test       = "no";
$wdcuser    = '[login]';
$wdcpass    = '[passwort]';
$wdchost    = 'www.wetterarchiv.de';
$wdcport    = '80';
$wdctimeout = '30';
$wdcurl     = '/interface/http/input.php';

// Variablen auf Basis der API von wetter.com
// http://www.wetter.com/community/wetternetzwerk/admin/api/
$bedeckung = "";
$wolkenhoehe = "";
$ch_wert = "";
$cm_wert = "";
$cl_wert = "";
$sichtweite = "";
$feuchtigkeit = GetValue(32760 /*[Garten\Klima\HUMIDITY]*/);
$temperatur = GetValue(57080 /*[Garten\Klima\TEMPERATURE]*/);
$windrichtung = "";
$windstaerke = "";
$luftdruck = "";
$aenderung = "";
$aenderung_zeit = "";
$aenderungsart = "";
$niederschlagsmenge = "";
$niederschlagsmenge_zeit = "";
$niederschlagsart = "";
$schneehoehe = "";
$neuschnee = "";
$neuschnee_zeit = "";

function apirequest($wdcuser, $wdcpass, $wdchost, $wdcport,	$wdctimeout, $wdcurl)
{
	// Ausführen des GET-Requests.
	$result    = false;
	$resultmsg = "";
	$fp = fsockopen($wdchost, $wdcport, $errno, $errstr, $wdctimeout);
	if($fp)
	{
		$request = "GET ".$wdcurl." HTTP/1.1\r\n";
		$request.= "Host: ".$wdchost."\r\n";
		$request.= "Connection: Close\r\n\r\n";

		// Auswerten der wetter.com Antwort.
		$data = "";
		fwrite($fp, $request);
		while (!feof($fp))
		{
			$data .= fgets($fp, 128);
		}
		fclose($fp);

		// Überprüfen ob die gemeldeten Werte korrekt verarbeitet wurden.
		$resultmsg = $data;
		if ( preg_match("/status=success/i", $data) )
			$result = true;
	}
	else
	{
		$resultmsg = $errstr;
	}

	if ( $result == false )
	{
  		IPS_LogMessage("WETTER.COM", "Meldung fehlgeschlagen!\n$resultmsg");
		return false;
	} else
	{
	   return true;
	}
}

// Aktuelles Datum mit Uhrzeit
$wdcdate = date("YmdHi");

// Erstellen des API-Requests
$wdcurl .= "?benutzername=$wdcuser&#038;passwort=$wdcpass&#038;datum=$wdcdate";

if ( $bedeckung != "" )
	$wdcurl .= "&#038;bedeckung=$bedeckung";
if ( $wolkenhoehe != "" )
	$wdcurl .= "&#038;wolkenhoehe=$wolkenhoehe";
if ( $ch_wert != "" )
	$wdcurl .= "&#038;ch_wert=$ch_wert";
if ( $cm_wert != "" )
	$wdcurl .= "&#038;cm_wert=$cm_wert";
if ( $cl_wert != "" )
	$wdcurl .= "&#038;cl_wert=$cl_wert";
if ( $sichtweite != "" )
	$wdcurl .= "&#038;sichtweite=$sichtweite";
if ( $feuchtigkeit != "" )
	$wdcurl .= "&#038;feuchtigkeit=$feuchtigkeit";
if ( $temperatur != "" )
	$wdcurl .= "&#038;temperatur=$temperatur";
if ( $windrichtung != "" )
	$wdcurl .= "&#038;windrichtung=$windrichtung";
if ( $windstaerke != "" )
	$wdcurl .= "&#038;windstaerke=$windstaerke";
else
	$wdcurl .= "&#038;windstaerke=0";
if ( $luftdruck != "" )
	$wdcurl .= "&#038;luftdruck=$luftdruck";
if ( $aenderung != "" )
	$wdcurl .= "&#038;aenderung=$aenderung";
if ( $aenderung_zeit != "" )
	$wdcurl .= "&#038;aenderung_zeit=$aenderung_zeit";
if ( $aenderungsart != "" )
	$wdcurl .= "&#038;aenderungsart=$aenderungsart";
if ( $niederschlagsmenge != "" )
	$wdcurl .= "&#038;niederschlagsmenge=$niederschlagsmenge";
if ( $niederschlagsmenge_zeit != "" )
	$wdcurl .= "&#038;niederschlagsmenge_zeit=$niederschlagsmenge_zeit";
if ( $niederschlagsart != "" )
	$wdcurl .= "&#038;niederschlagsart=$niederschlagsart";
if ( $schneehoehe != "" )
	$wdcurl .= "&#038;schneehoehe=$schneehoehe";
if ( $neuschnee != "" )
	$wdcurl .= "&#038;neuschnee=$neuschnee";
if ( $neuschnee_zeit != "" )
	$wdcurl .= "&#038;neuschnee_zeit=$neuschnee_zeit";
if ( $test == "yes" )
   $wdcurl .= "&#038;test=true";

if ( apirequest($wdcuser, $wdcpass, $wdchost, $wdcport, $wdctimeout, $wdcurl) )
{
	   IPS_LogMessage("WETTER.COM", "Meldung: ".
			$temperatur ."°C, ".
			$feuchtigkeit ."% Luftfeuchtigkeit.");
}
?&gt;
</pre>

<p><a href="http://feedads.g.doubleclick.net/~a/R0pGVGWJ32DsaYccQ5j2N_wJgGg/0/da"><img src="http://feedads.g.doubleclick.net/~a/R0pGVGWJ32DsaYccQ5j2N_wJgGg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/R0pGVGWJ32DsaYccQ5j2N_wJgGg/1/da"><img src="http://feedads.g.doubleclick.net/~a/R0pGVGWJ32DsaYccQ5j2N_wJgGg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/V5pO-aC3nXI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2011/11/01/ip-symcon-script-wetterstation-fur-wetter-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2011/11/01/ip-symcon-script-wetterstation-fur-wetter-com/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ip-symcon-script-wetterstation-fur-wetter-com</feedburner:origLink></item>
		<item>
		<title>Magix Video Deluxe – Video im Arranger unvollständig beim DV AVI Import</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/KJ1LoqnV5Cc/</link>
		<comments>http://blog.schmidt.ps/2011/09/06/magix-video-deluxe-video-im-arranger-unvollstandig-beim-dv-avi-import/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 07:23:35 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[AVI]]></category>
		<category><![CDATA[DVdate]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[MAGIX]]></category>
		<category><![CDATA[Video Deluxe]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=953</guid>
		<description><![CDATA[Endlich habe ich Zeit gefunden die jahrelang unbearbeitete DV-Band Queue abzuarbeiten und via Firewire auf den Rechner zu importieren. Wenn man bedenkt, dass ein 60 Minuten DV-Band ca. 12 GB groß ist und davon einige im Archiv liegen, war lange Zeit der hohe Gigabyte-Preis ein Hindernis. Das Videoschnittprogramm meiner Wahl ist Video Deluxe MX von [...]]]></description>
			<content:encoded><![CDATA[<p>Endlich habe ich Zeit gefunden die jahrelang unbearbeitete DV-Band Queue abzuarbeiten und via Firewire auf den Rechner zu importieren. Wenn man bedenkt, dass ein 60 Minuten DV-Band ca. 12 GB groß ist und davon einige im Archiv liegen, war lange Zeit der hohe Gigabyte-Preis ein Hindernis.</p>
<p>Das Videoschnittprogramm meiner Wahl ist <strong>Video Deluxe MX</strong> von der Firma Magix. Nun habe ich jedoch das Problem, die auf den Rechner kopierten Videodateien in das Programm zu importieren. Wenn ich beispielsweise ein 50 Minuten Video hinzufügen möchte macht die Schnittsoftware bei rund 10 Minuten einen Schnitt und der Rest des Videos fehlt im Arranger.</p>
<p>Die Magix Community-Foren sind voll von Problemhinweisen. Diese reichen von unterschiedlichen Audiobitraten, über defekte Schnittpunkte des Camcorders bis hin zu AVI Streamfehlern. Mit dem Ausschlußverfahren konnte ich mein Problem isolieren: <strong>DV-AVI Typ 1</strong> Die Videoschnittsoftware von Magix kommt anscheinend mit der älteren und fehleranfälligeren Version des DV-AVI Containers nicht klar.</p>
<p>Nun steht noch das verlustfreie Umwandeln der AVI-Videodateien in den Typ 2 an. Für Windows-Benutzer gibt es das komfortable Programm <strong><a href="http://blog.schmidt.ps/dl/blogposts/dvdate_71en.zip">DVdate</a></strong>.<br />
Für nahezu alle Plattformen ist <strong>ffmpeg</strong> die Lösung. Mit ein wenig Perl-Magie erhält man eine nahezu identische Lösung zu DVdate.</p>
<pre>
#!/usr/bin/perl

$FFMPEG="/usr/local/bin/ffmpeg";
$MEDIAINFO="/usr/local/bin/mediainfo";
$LOGFILE="log.txt";

sub crawl
{
   my $path = shift;

   opendir(my $dh, $path) || die;
   while(readdir $dh)
   {
      $item = $_;

      if ( $_ =~ m/^\./ )
      {
         next;
      }

      if ( -d "$path/$item" )
      {
         crawl("$path/$item");
      }
      if ( -f "$path/$item" )
      {
         if ( $item =~ m/\.avi$/i )
         {
            $openfile = "$path/$item";
            $basename = $item;
            $basename =~ s/\.avi$//;

            $mediainfo = `\"$MEDIAINFO\" --Inform=General;%Encoded_Application% \"$openfile\"`;

            if ( ! $mediainfo )
            {
               print "Found file for conversion: $basename - Converting... ";
               $ret = system("\"$FFMPEG\" -i \"$openfile\" -vcodec copy -acodec copy \"$path/$basename"."_type2.avi\" 2>NUL");

               if ( $ret == 0 )
               {
                  print "Done!\n";
                  print FDO "Successfull conversion of: $openfile\n";
                  unlink("$openfile");
                  rename("$path/$basename"."_type2.avi", "$openfile");
               } else
               {
                  print "Error!\n";
                  print FDO "Error while converting: $openfile\n";
                  unlink("$path/$basename"."_type2.avi");
               }
            } else
            {
               print "Already converted: $openfile\n";
               print FDO "File is already converted: $openfile\n";
            }
         }
      }
   }
   closedir $dh;
}

if ( $#ARGV == 0 )
{
   open(FDO, ">$LOGFILE");

   $rootpath = shift;
   crawl($rootpath);

   print "Script finished!\n";
   print FDO "Script finished!";

   close(FDO);
} else
{
   print "Syntax: ./conv_avitype.pl [path to videos]\n";
}
</pre>
<p>Für das Script werden die zusätzlichen Programme <strong>ffmpeg</strong> und <strong>mediainfo</strong> benötigt. Die entsprechenden Pfadangaben müssen am Anfang des Scripts angepasst werden.</p>
<p>Nachdem alle AVI-Dateien in den Typ 2 konvertiert wurden, lassen diese auch einwandfrei und ohne Probleme in Magix Video Deluxe MX öffnen. So wie ich die Informationen der Community verstanden habe, betrifft dieses Phänomen bzw. Verhalten alle Version vor und inklusive MX.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/bQI_oYhTpM7ZWIjgc46SH799e_8/0/da"><img src="http://feedads.g.doubleclick.net/~a/bQI_oYhTpM7ZWIjgc46SH799e_8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bQI_oYhTpM7ZWIjgc46SH799e_8/1/da"><img src="http://feedads.g.doubleclick.net/~a/bQI_oYhTpM7ZWIjgc46SH799e_8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/KJ1LoqnV5Cc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2011/09/06/magix-video-deluxe-video-im-arranger-unvollstandig-beim-dv-avi-import/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2011/09/06/magix-video-deluxe-video-im-arranger-unvollstandig-beim-dv-avi-import/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=magix-video-deluxe-video-im-arranger-unvollstandig-beim-dv-avi-import</feedburner:origLink></item>
		<item>
		<title>Hausautomatisierung mit IP-Symcon unter Linux</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/8G5-uHLMz5k/</link>
		<comments>http://blog.schmidt.ps/2011/08/18/hausautomatisierung-mit-ip-symcon-unter-linux/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 11:55:42 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[IP-Symcon]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[eQ-3]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Homematic]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wine]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=939</guid>
		<description><![CDATA[Schon seit einiger Zeit nutze ich die Software IP-Symcon um alle Komponenten meiner Hausautomatisierung zusammenzufassen und zentral zu verwalten. Die Basis ist bisher das System Homematic von eQ-3 geblieben. IP-Symcon ist als komplett autarkes Smarthome-System anzusehen. Es werden lediglich Schnittstellen bzw. Module zu anderen Lösungen bereitgestellt auf die via API-Calls zugegriffen werden kann. Leider benötigt [...]]]></description>
			<content:encoded><![CDATA[<p>Schon seit einiger Zeit nutze ich die Software IP-Symcon um alle Komponenten meiner Hausautomatisierung zusammenzufassen und zentral zu verwalten. Die Basis ist bisher das System Homematic von eQ-3 geblieben.</p>
<p>IP-Symcon ist als komplett autarkes Smarthome-System anzusehen. Es werden lediglich Schnittstellen bzw. Module zu anderen Lösungen bereitgestellt auf die via API-Calls zugegriffen werden kann.</p>
<p>Leider benötigt die Installation bzw. der Betrieb der Software ein Windows-Betriebssystem als Basis. Mit Wine ist jedoch eine Anwendung auf einer Linux-Plattform möglich.</p>
<p>Mit folgender Anleitung zeige ich die Installation/den Betrieb der Software unter Debian mit Wine in der Version 1.0.1-3.1. Dieses Release wird bei Debian 6.0 mitgeliefert. Daher ist keine eigene Kompilierung einer Wine-Version notwendig.</p>
<ul>
<li>Installieren von Wine und Xvfb als <strong>root</strong> User.
<pre>apt-get install wine xvfb</pre>
</li>
<li>Die IP-Symcon zukünftig unter User-Rechten laufen soll, werden folgende Schritte als User ausgeführt.</li>
<li>Starten von <strong>winecfg</strong> um eine Standardkonfiguration anzulegen.</li>
<li>Herunterladen von Winetricks (zusätzliche Libs/Programme für die Wine-Installation).
<pre>wget http://wiki.winehq.org/winetricks</pre>
</li>
<li>Installation einiger Winetricks-Addons:
<pre>
./winetricks msxml3
./winetricks gecko
./winetricks corefonts
</pre>
<p>Entsprechende Pakete werden nun heruntergeladen und installiert.</li>
<li>Nun wird ins Zielverzeichnis der IP-Symcon-Installation das Setup heruntergeladen.
<pre>wget http://www.ipsymcon.de/live2/update.php?action=dllive -O ips_live.exe</pre>
</li>
<li>Zum Starten der IP-Symcon-Installation sollte, wenn die Installation via SSH geschieht, lokal ein X-Server laufen und in der aktuellen SSH-Session ein X-Forwarding aktiv sein.</li>
<li>Das Setup wird über die heruntergeladene Datei <strong>ips_live.exe</strong> gestartet:
<pre>wine ips_live.exe</pre>
<p>Nach der Installation den Haken zum automatischen Start <strong>deaktivieren</strong>.</li>
<li>Wichtig ist nun das Einspielen der Lizenz in die IP-Symcon Software:
<pre>wine ips_tray.exe /activate email@domain license.txt</pre>
<p>Die Datei <strong>license.txt</strong> muß im aktuellen Verzeichnis liegen.
</li>
<li>Folgendes Script startet eine IP-Symcon Instanz. In meinem Fall liegt IP-Symcon im Verzeichnis <i>/opt/IP-Symcon</i>.
<pre>
#!/bin/bash
rm -rf /opt/IP-Symcon/logs/*

echo "Starting IP-Symcon..."
Xvfb -ac :5 2>/dev/null 1>/dev/null &#038;
export DISPLAY=:5
/usr/bin/wine /opt/IP-Symcon/ips.exe 1>/dev/null 2>&#038;1 &#038;
echo "Done!"
</pre>
<p>Ein entsprechendes Script zum Stoppen sieht wie folgt aus:</p>
<pre>
#!/bin/bash

echo "Stopping IP-Symcon..."
pkill ips.exe
pkill wineconsole.exe
pkill winedevice.exe
pkill wineboot.exe
pkill services.exe
pkill wineserver
pkill explorer.exe
pkill -9 Xvfb
echo "Done!"
</pre>
<p>Xvfb wird benötigt um Wine einen laufenden X-Server zu bieten. Eine Interaktion via lokaler GUI ist jedoch nicht nötigt.</li>
</ul>
<p><strong>Hinweis:</strong><br />
Der Zugriff auf die Weboberfläche von IP-Symcon ist bei einer Unix-Installation <strong>ausschließlich</strong> über <strong>https</strong> möglich!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/tWtTKtAELTRPDwsJimsgu7qykbM/0/da"><img src="http://feedads.g.doubleclick.net/~a/tWtTKtAELTRPDwsJimsgu7qykbM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tWtTKtAELTRPDwsJimsgu7qykbM/1/da"><img src="http://feedads.g.doubleclick.net/~a/tWtTKtAELTRPDwsJimsgu7qykbM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/8G5-uHLMz5k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2011/08/18/hausautomatisierung-mit-ip-symcon-unter-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2011/08/18/hausautomatisierung-mit-ip-symcon-unter-linux/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hausautomatisierung-mit-ip-symcon-unter-linux</feedburner:origLink></item>
		<item>
		<title>PHP-Script für den SMS-Versand via Sipgate API</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/FKQZTlZpH2A/</link>
		<comments>http://blog.schmidt.ps/2011/08/04/php-script-fur-den-sms-versand-via-sipgate-api/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 14:07:25 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Sipgate]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[XML-RPC]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=903</guid>
		<description><![CDATA[Sipgate stellt eine hervorragend dokumentierte und via XML-RPC ansprechbare API zur Verfügung. Folgende PHP-Funktion nutzt diese Schnittstelle für den Versand einer SMS über diese Schnittstelle. &#60;?php include ('xmlrpc/lib/xmlrpc.inc'); function sipgate_sendsms($smsnumber, $smstext) { // Festlegen der Konfigurationswerte. define ('SIPGATE_SERVER', 'samurai.sipgate.net'); define ('SIPGATE_PATH', '/RPC2'); define ('SIPGATE_PROT', 'https'); define ('SIPGATE_PORT', '443'); define ('SIPGATE_SIPURI_PREFIX', 'sip:'); define ('SIPGATE_SIPURI_HOST', '@sipgate.net'); define [...]]]></description>
			<content:encoded><![CDATA[<p>Sipgate stellt eine hervorragend dokumentierte und via XML-RPC ansprechbare API zur Verfügung. Folgende PHP-Funktion nutzt diese Schnittstelle für den Versand einer SMS über diese Schnittstelle.</p>
<pre>&lt;?php
include ('xmlrpc/lib/xmlrpc.inc'); 

function sipgate_sendsms($smsnumber, $smstext)
{
    // Festlegen der Konfigurationswerte.
    define ('SIPGATE_SERVER',  'samurai.sipgate.net');
    define ('SIPGATE_PATH',  '/RPC2');
    define ('SIPGATE_PROT',  'https');
    define ('SIPGATE_PORT',  '443');
    define ('SIPGATE_SIPURI_PREFIX',  'sip:');
    define ('SIPGATE_SIPURI_HOST',  '@sipgate.net'); 

    define ('SIPGATE_USER',  'WEB-LOGIN VON SIPGATE');
    define ('SIPGATE_PASS',  'WEB-PASSWORT VON SIPGATE'); 

    // Erstellen des xmlrpc clients.
    $xmlurl = SIPGATE_PROT . "://" . SIPGATE_USER . ":" . SIPGATE_PASS . "@" .
        SIPGATE_SERVER . ":" . SIPGATE_PORT . SIPGATE_PATH; 

    $xmlclient = new xmlrpc_client($xmlurl);
    $xmlclient->setSSLVerifyPeer(FALSE); 

    // Rufnummer und Text für die SMS vorbereiten.
    $smsnumber = SIPGATE_SIPURI_PREFIX . $smsnumber . SIPGATE_SIPURI_HOST;
    $smstext = substr($smstext, 0, 160); 

    $val_a["RemoteUri"] = new xmlrpcval($smsnumber);
    $val_a["TOS"] = new xmlrpcval("text");
    $val_a["Content"] = new xmlrpcval($smstext);
    //$val_a["Schedule"] = new xmlrpcval(iso8601_encode(NULL), "dateTime.iso8601"); 

    $val_s = new xmlrpcval();
    $val_s->addStruct($val_a);
    $v = array();
    $v[] = $val_s; 

    // Nachrichtenobjet erstellen.
    $m = new xmlrpcmsg('samurai.SessionInitiate', $v); 

    // SMS senden.
    $r = $xmlclient->send($m); 

    // Anzeigen von eventuellen Fehlern.
    if ( $r->faultCode() )
    {
        return false;
    } else
    {
        return true;
    }
}
?&gt;</pre>
<p>Dieses Script nutzt die Möglichkeiten der <a href="http://phpxmlrpc.sourceforge.net/" target="_blank">XML-RPC Bibliothek</a>. Diese ist <b><u>nicht</u></b> zu verwechseln mit der bereits integrierten <b>xmlrpc-Library</b> von PHP.</p>
<p><b>Hinweise:</b></p>
<ul>
<li>Im Script muss noch der Benutzername und das Passwort des Sipgate <b>Webinterface</b> Zugangs konfiguriert werden.</li>
<li>Die Installation bzw. das Entpacken der XML-RPC Bibliothek muss im gleichen Verzeichnis erfolgen in dem sich auch das Script befindet. Ansonsten muß der Include-Pfad angepasst werden.</li>
<li>Syntax der Funktion:
<pre>sipgate_sendsms("49421123456789", "Hallo Welt.");</pre>
<p> Wichtig ist, dass der internationale Wählcode vorangestellt wird. Ohne die doppelte 0 und ohne ein + Zeichen.
</ul>

<p><a href="http://feedads.g.doubleclick.net/~a/y6rWQ89hWNkP9WFpSH3BeQ4r-6k/0/da"><img src="http://feedads.g.doubleclick.net/~a/y6rWQ89hWNkP9WFpSH3BeQ4r-6k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/y6rWQ89hWNkP9WFpSH3BeQ4r-6k/1/da"><img src="http://feedads.g.doubleclick.net/~a/y6rWQ89hWNkP9WFpSH3BeQ4r-6k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/FKQZTlZpH2A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2011/08/04/php-script-fur-den-sms-versand-via-sipgate-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2011/08/04/php-script-fur-den-sms-versand-via-sipgate-api/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=php-script-fur-den-sms-versand-via-sipgate-api</feedburner:origLink></item>
		<item>
		<title>AVM Fritzbox und IPv6 Connectivity</title>
		<link>http://feedproxy.google.com/~r/realriot/~3/s3JjkFLX_pc/</link>
		<comments>http://blog.schmidt.ps/2011/05/30/avm-fritzbox-und-ipv6-connectivity/#comments</comments>
		<pubDate>Mon, 30 May 2011 06:01:06 +0000</pubDate>
		<dc:creator>Sascha Schmidt</dc:creator>
				<category><![CDATA[Fritzbox]]></category>
		<category><![CDATA[AFTR]]></category>
		<category><![CDATA[AVM]]></category>
		<category><![CDATA[DS-Lite]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[SixXS]]></category>

		<guid isPermaLink="false">http://blog.schmidt.ps/?p=770</guid>
		<description><![CDATA[Am 03.02.2011 wurden die letzten /8-Netze an IPv4-Adressen an die fünf regionalen Registrys verteilt. Für Europa ist die Ripe NCC für die Vergabe der IP-Adressen zuständig. Aktuelle Hochrechnungen zeigen, daß ab spätestens September alle IPv4 Adressen aufgebraucht sein werden. Doch was kommt danach? Die Antwortet lautet: IPv6. Ich möchte in diesem Artikel auf die bis [...]]]></description>
			<content:encoded><![CDATA[<p>Am 03.02.2011 wurden die letzten /8-Netze an IPv4-Adressen an die fünf regionalen Registrys verteilt. Für Europa ist die Ripe NCC für die Vergabe der IP-Adressen zuständig. Aktuelle Hochrechnungen zeigen, daß ab spätestens September alle IPv4 Adressen aufgebraucht sein werden. Doch was kommt danach? Die Antwortet lautet: <strong>IPv6</strong>.</p>
<p>Ich möchte in diesem Artikel auf die bis jetzt schon zur Verfügung stehenden Möglichkeiten zur Anbindung der Fritzbox an IPv6 Netze eingehen. AVM hat bereits vor Jahren mit den ersten rudimentären Implementierungen des IPv6 Stacks in die Fritzbox begonnen. Es hat sich seitdem sehr viel getan.</p>
<p>Die IPv6-Einstellungen werden komfortabel über die WebGUI in dem dafür vorgesehenen Reiter der Internet-Zugangsdaten der Fritzbox vorgenommen. Es stehen 3 mögliche Optionen zur Auswahl:</p>
<ul>
<li><strong>Einstellungen automatisch ermitteln (empfohlen)</strong></li>
<li><strong>Immer eine native IPv6-Anbindung nutzen</strong></li>
<li><strong>Immer ein Tunnelprotokoll für die IPv6-Anbindung nutzen</strong></li>
</ul>
<p>Generell ist die automatische Methode zu empfehlen. Falls der genutzte Internet Service Anbieter bereits einen nativen IPv6 Zugang anbietet, wird dieser genutzt und es sind keine weiteren Einstellungen notwendig. Alle Techniken und auch die weitere Erreichbarkeit alter IPv4 Hosts verantwortet der ISP und stellt entsprechende Gateways zur Verfügung. Falls kein nativer Zugang zur Verfügung steht wird ein Tunnelprotokoll eingesetzt. Daher kann mit dieser Option Einfluß auf die Nativ- bzw. Tunneltechnik genommen werden.</p>
<p>Von der Fritzbox werden Tunnelmöglichkeiten zur Verfügung gestellt:</p>
<ul>
<li><strong>6to4</strong> &#8211; <em>Die Nutzung von 6to4 ist über nahezu jede IPv4-Adresse möglich und erfordert keine Anmeldung. Der nächstgelegene Tunnelendpunkt wird automatisch ermittelt.</em></li>
<li><strong>SixXS</strong> &#8211; <em>SixXS.net ist ein Tunnelanbieter, der es nach einer erfolgreichen Registrierung ermöglicht, eigene IPv6 Netze zu verwalten, mit DNS-Servern zu versehen und Statistiken auszuwerden. Es werden entsprechende Zugangsdaten benötigt.</em></li>
<li><strong>6RD</strong> &#8211; <em>IPv6 rapid deployment basiert auf 6to4, jedoch mit dem Ziel die Architektur-Problematik der alten Umsetzung zu vermeiden.</em></li>
<li><strong>6in4</strong> &#8211; <em>Übertragung von IPv6 in IPv4 Paketen. Es kommt hierbei das klassiche Tunnelprotokoll zum Einsatz (z.B. Protokolltyp 41). Es wird lediglich ein IPv4 Endpunkt mit entsprechend konfiguriertem Tunnel benötigt. Beispielsweise bietet Hurricane Electric Tunnel basierend auf dieser Technik an.</em></li>
</ul>
<p><strong>Native IPv6 Anbindung</strong><br />
Wie bereits erwähnt sind bei dieser Verbindungsart die wenigsten Hindernisse zu befürchten. Im günstigsten Fall kann die Fritzbox die global zugewiesene IPv6 Adresse aushandeln und auf die Box konfigurieren. Falls das widererwarten nicht möglich sein sollte, müssen hier die Providereinstellungen manuell vorgenommen werden.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Nativ_IPv6_01.jpg"><img src="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Nativ_IPv6_01.jpg" alt="" title="Fritzbox_Nativ_IPv6_01" width="789" height="853" class="aligncenter size-full wp-image-797" /></a></p>
<p>Letztendlich bleibt noch die IPv4-Konfiguration übrig. Diese ist nötig, um auch weiterhin Hosts und Server im alten Adressraum zu erreichen. Die Einstellungen dafür befinden sich im Reiter IPv4. Der DS-Lite (IPv4-over-IPv6 tunneling technology) Parameter definiert die Erreichbarkeit des entsprechenden NAT-Gateways zum Transport der IPv4-Daten über IPv6. Die Zuweisung der Adresse kann entweder via DHCPv6 automatisch oder durch eine manuelle Zuweisung durchgeführt werden.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Nativ_IPv6_01.jpg"><img src="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Nativ_IPv6_01.jpg" alt="" title="Fritzbox_Nativ_IPv6_01" width="789" height="853" class="aligncenter size-full wp-image-797" /></a></p>
<p><strong>IPv6 Anbindung über Tunnelprotokolle</strong><br />
Um die IPv6-Connectivity über eine Tunnelverbindung herzustellen, muß zuerst die Technik bzw. der Anbieter ausgewählt werden. Bis auf die 6RD Umsetzung werden jeweils Zugangsdaten benötigt, die in den entsprechenden Konfigurationsfeldern einzutragen sind.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Tunnel_IPv6_01.jpg"><img src="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Tunnel_IPv6_01.jpg" alt="" title="Fritzbox_Tunnel_IPv6_01" width="788" height="645" class="aligncenter size-full wp-image-808" /></a></p>
<p>Genau wie beim nativen IPv6-Zugang besteht die Möglichkeit eine fest eingestellt MTU-Größe einzustellen. Auch können die ULA (Unique Local Addresses) im Aufbau und Präfix festgelegt werden.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Tunnel_IPv6_02.jpg"><img src="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Tunnel_IPv6_02.jpg" alt="" title="Fritzbox_Tunnel_IPv6_02" width="788" height="315" class="aligncenter size-full wp-image-809" /></a></p>
<p><strong>Abschluß der Konfiguration und Aktivieren der Verbindung</strong><br />
Nachdem der native IPv6-Zugang bzw. die Tunnelverbindung konfiguriert wurde, wird die Fritzbox nach der Übernahme der Einstellung die Internetverbindung neu herstellen. Das Ergebnis der IPv6-Connectivity lässt sich auf der Übersichtsseite der Fritzboxkonfiguration ablesen. Über den IPv6 Reiter in den Einstellungen der Internet-Zugangsdaten lassen sich noch wesentlich mehr Details über festgelegte und übermittelte Parameter erkennen. Die Informationen können bei Problemen zur Fehlerlösung herangezogen werden.</p>
<p><a href="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Status_IPv6.jpg"><img src="http://blog.schmidt.ps/wp-content/uploads/2011/05/Fritzbox_Status_IPv6.jpg" alt="" title="Fritzbox_Status_IPv6" width="788" height="253" class="aligncenter size-full wp-image-814" /></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/BWAvsuZeBiqas9y2NxFL4knVkq8/0/da"><img src="http://feedads.g.doubleclick.net/~a/BWAvsuZeBiqas9y2NxFL4knVkq8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BWAvsuZeBiqas9y2NxFL4knVkq8/1/da"><img src="http://feedads.g.doubleclick.net/~a/BWAvsuZeBiqas9y2NxFL4knVkq8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/realriot/~4/s3JjkFLX_pc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.schmidt.ps/2011/05/30/avm-fritzbox-und-ipv6-connectivity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.schmidt.ps/2011/05/30/avm-fritzbox-und-ipv6-connectivity/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=avm-fritzbox-und-ipv6-connectivity</feedburner:origLink></item>
	</channel>
</rss>

