JohannWeiher

Über Johann Weiher

Der Autor hat bisher keine Details angegeben.
Bisher hat Johann Weiher, 505 Blog Beiträge geschrieben.

Doorbell – Update: Slacker

Alle guten Dinge sind drei…
Ich war nie zufrieden mit den Pushservices Pushover und Pushbullet.

Pushbullet würde die Bilder schön darstellen, aber pushed ab und zu unzuverlässig.

Da wir im Unternehmen derzeit für die interne Kommunikation Slack testen, kam mir die Idee meine Türklingel auch dort mal an die API anzubinden.

Das schöne an Slack ist, dass es für alle Mobile-/Desktop-Betriebssysteme Apps gibt!

Die API ist auch schön einfach… Einfach ein Team + Channel erstellen und den API-Key eintragen… mit drei Zeilen im Code ist es getan.

from slacker import Slacker

# Slack
slack = Slacker('myApiKey')
slack.files.upload('/home/pi/Desktop/doorbell/web/photos/' +  filename, title=now, channels='#doorbell')

Was der Code macht: Import von Slacker (Python-Lib) und dann einfach den Upload des Fotos mit dem Titel der aktuellen Zeit in den Channel #doorbell.

Auf dem Screenshot sieht man auch dass ich noch im alten Pythoncode die falsche Uhrzeit abgefragt habe… Das könnt ihr wie folgt korrigieren:

now=strftime("%Y-%m-%d %H:%M:%S", gmtime())

 

Doorbell_Slacker

Schön sieht man auch wie die IR-Kamera des Raspberry Pi im dunklen fotografiert, sogar mit Gegenlicht :^)

Von |2026-07-23T12:51:27+02:002016-01-27|Doorbell, Projekte|

GetProjectVariableLanguage

Ich hatte mal schon geschrieben wie man die Projekt-Sprachen rausfindet

Hier noch ein Script wie man die variable Sprache herausfindet.
Einfach das Script laden und in einem anderen Script das Usage ausführen.

 

using System.IO;
using System.Xml;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;

class GetProjectVariableLanguage
{
	/* Usage
	private static string GetProjectVariableLanguage()
	{
		string value = null;
		ActionCallingContext actionCallingContext = new ActionCallingContext();
		new CommandLineInterpreter().Execute("GetProjectVariableLanguage", actionCallingContext);
		actionCallingContext.GetParameter("value", ref value);
		return value;
	}
	*/

	private readonly string TempPath = Path.Combine(
		PathMap.SubstitutePath("$(TMP)"), "GetProjectLanguages.xml");

	[DeclareAction("GetProjectVariableLanguage")]
	public void Action(out string value)
	{
		ActionCallingContext actionCallingContext = new ActionCallingContext();
		actionCallingContext.AddParameter("prj", FullProjectPath());
		actionCallingContext.AddParameter("node", "TRANSLATEGUI");
		actionCallingContext.AddParameter("XMLFile", TempPath);
		new CommandLineInterpreter().Execute("XSettingsExport", actionCallingContext);

		if (File.Exists(TempPath))
		{
			string languagesString = GetValueSettingsXml(TempPath,
				"/Settings/CAT/MOD/Setting[@name='VAR_LANGUAGE']/Val");

			if (languagesString != null)
			{
				value = languagesString;
				return;
			}
		}

		value = null;
		return;
	}

	// Returns the EPLAN Project Path
	private static string FullProjectPath()
	{
		ActionCallingContext acc = new ActionCallingContext();
		acc.AddParameter("TYPE", "PROJECT");

		string projectPath = string.Empty;
		new CommandLineInterpreter().Execute("selectionset", acc);
		acc.GetParameter("PROJECT", ref projectPath);

		return projectPath;
	}

	// Read EPLAN XML-ProjectInfo and returns the value
	private static string GetValueSettingsXml(string filename, string url)
	{
		XmlDocument xmlDocument = new XmlDocument();
		xmlDocument.Load(filename);

		XmlNodeList rankListSchemaName = xmlDocument.SelectNodes(url);
		if (rankListSchemaName != null && rankListSchemaName.Count > 0)
		{
			// Get Text from MultiLanguage or not :)
			string value = rankListSchemaName[0].InnerText;
			return value;
		}
		else
		{
			return null;
		}
	}
}
Von |2017-11-09T11:22:16+01:002016-01-11|EPLAN, EPLAN-Scripts|

Rückblick 2015

Es stimmt wohl was die Leute immer sagen: „Mit dem Alter vergeht die Zeit schneller

Jedes Jahr verzieht spürbar schneller und ich bin schon der Typ Mensch, der sich am Ende des Jahres fragt, was denn alles passiert ist.

Privat ist das heuer ziemlich einfach: Habe im Sommer geheiratet, was einem natürlich am besten in Erinnerung bleibt.

Beruflich ist es eigentlich eine Kombination aus unterschiedlichen Eindrücken & Erlebnissen.
In diesem Zusammenhang war es auch das 2. Jahr im Unternehmen und ich bin sehr glücklich und dankbar über den tollen Arbeitsplatz.

Auch die neuen Kontakte und Kunden die man über das Jahr kennengelernt hat, haben mir sehr viel Freude bereitet. Viele Eindrücke erhalten und vielen EPLAN Anwendern helfen können. Diese Kombination macht einen als Consultant glücklich.

Freue mich sehr auf nächstes Jahr, beruflich wie privat. Aber das ist eh nicht so klar zu unterscheiden bzw. will ich nicht unterscheiden. Irgendwie ist es eigentlich ein Hobby für das man Geld bekommt, denn es macht so viel Spaß dass man sich gerne auch am Wochenende / Abend damit beschäftigt. Meiner Meinung nach ist das auch die beste Kombination aus persönlicher Sicht bzw. der Sicht der Kunden. Denn ich hoffe man bemerkt das Herzblut dass in unserer Arbeit, Leistungen und Produkten steckt.

Auch danke an die EPLAN Community, die immer wieder neue Ideen und Lösungen entwickelt.

In diesem Sinne einfach Danke!

Von |2026-07-23T12:58:24+02:002015-12-19|Allgemein|

XPrjActionProjectCreateBaseProject

Mit dieser inoffiziellen Action ist es möglich per Script aus einem Projekt ein Basisprojekt zu erstellen:

XPrjActionProjectCreateBaseProject

Parameter:

  • PROJECTfull name of the project
  • TARGETfull name of the target file
Von |2017-11-09T11:22:18+01:002015-12-15|EPLAN, EPLAN-Scripts|
Nach oben