Darstellung Geofency

Hallo zusammen,
habt ihr eure „Anwesenheit“ mit Hilfe von Geofency oder so auch irgendwie grafisch dargestellt?
Ich stelle mir sowas vor wie verschiedene Orte und dann jeweils aktiv wo die Person sich gerade aufhält.
Oder wäre das mit View einfacher?
kenne von FHEM hier folgendes:

anwesenheit.JPG

Gruß
Suner

Off Topic:

Sorry - ich kann es mir nicht verkneifen…:smiley:

@Sunner: Kenne ich nicht, sieht jedoch interessant aus. Wenn du weiter forschen/basteln solltest, halte uns auf den laufenden bitte :).

Erklär mal die Unterschiede bitte…

Und wie geofency das erkennen soll.

@Suner, Du bist mir paar Stunden zuvor gekommen.

Habe gestern unsere iPhones mit Geofency ausgestattet, IPS Module (Geofency & EgiGeoZone) installiert und habe somit heute meinen ersten Praxistag. Bis jetzt super Rückmeldung/Erkennung.

Hatte mir exakt das gleiche Bild von Fhem abgespeichert und möchte das auch im WF „nachbauen“. Bin leider im HMTL/JS nicht wirklich gut :frowning:

Fände es super wenn man hier was zusammen hinbekommen würde, wäre jedenfalls dabei!

Ciao Pitti

Ich schaue mal ob ich im HTML die Tage was gebastelt bekomme.
Das ist erst mal STEP 1 :wink:

EDIT 1: oh man, das ist gar nicht so einfach wie ich dachte… HTML-Box hat nicht so geklappt wie ich dachte, darum hab ich das jetzt als externe Seite eingebunden. Schön das ist nicht… bin nicht so zufrieden… Weiß nicht ob ich den Einsatz weiter verfolgen soll… FHEM arbeitet mit JS. da bin ich raus…

anwesenheit_html.PNG

Unterschiede?

verschiedene ibeacons mit Webhook etc…
oder was meinst du?

Yepp…so etwas wollte ich gehört haben.

Welche iBeacons setzt Du ein ? Ich habe bisher keinen einwandfrei funktionieren gefunden.

Hab zwei verschiedene aus China. Einer ist von yunjia und einer von bytereal. Beide unter 10€ und voll funktionsfähig

Gesendet von iPhone mit Tapatalk

hab mir den bytereal jetzt auch noch mal kommen lassen.

Hatte bereits 3 getestet, aber funktionierten nie so ganz richtig. Warten wir es mal ab!

Es gibt doch bei Bildern die imagemap/areamap HTML damit kannst du den Anklick lösen. Sonst halt die Bilder in allen Variationen vorbereiten und je nach Situation aus/einblenden (DIV).ob das integriert im ipswebfront geht… sicher geht aber das Bild selbst / Source durch IPS ersetzen lassen (Media oder Fileordner)? Gruss

Gesendet von iPhone mit Tapatalk

Soo, jetzt möchte ich mal meinen aktuellen Stand vorstellen. Finde es sieht schon sehr nett aus :smiley:

Was habe ich gemacht:

[ul]
[li]wir sind 4 Personen in unserem Haushalt
[/li][li]Anwesenheit wird im momentan nur über Geofency und EgiGeoZone gesteuert
[/li][li]Jede Person im Haushalt hat eine ‚binäre‘ Zahl zugeordnet bekommen (1,2,4,8)
[/li][li]Habe für die verschiedenen Kombinationen ein „binäres“ Profil angelegt
[/li][li]genau so pro Kombination Bilder mit „binärer“ Bennamung (z.B. 1111 = Alle da, 0001 = nur Papa oder 1100 = Kinder usw.)
[/li][li]Imagemap mit Klick-Rückkopplung via WebHook (get)
[/li][/ul]

Wie sieht das jetzt aus:

Bin schon recht zufrieden, aber es gibt noch einiges zu tun:

[ul]
[li]Geofenfy funktioniert zwar richtig gut, aber die Kinder schalten es oft aus wegen begrenzter Datenrate :rolleyes:
[/li][li]Scripte noch sauber putzen und generalisieren
[/li][/ul]

Es geht voran!

Gruss Heiko

Jaja, die Geister die ich rief.- Jetzt bist erpressbar: Papa ich brauch das größere Datenpaket, sonst geht der Dienst nicht.

Optisch finde ich die Idee mit dem Kreis sehr gut, gefällt mir - Daumen Hoch.

bb

Sieht echt Klasse aus… mit dem großen Image (Status wer zuhause ist ) links würde ich mir aber die Anwesend-Variable rechts sparen.
Top!
Grüße,
Peter

Gesendet von iPhone mit Tapatalk

Danke Euch!

Ja, die Variable war meine Lösung vor dem Image und jetzt noch für den Screenshot zu Demonstrationszwecken!

VG Heiko

PS: ja das mit der Datenrate ist so ein Ding :wink:

Gesendet von iPhone mit Tapatalk

Hammer! So hab ich mir das eigentlich auch vorgestellt… aber so viele Projekte momentan, da hab ich das nicht weiter verfolgt… Respekt !

Gesendet von iPhone mit Tapatalk

Hallo Pitti,

die Lösung ist mal genial, wie hast du das umgesetzt :confused:

Würde mich über Lösungsvorschläge freuen.

Grüße Alex

Hi Alex, bin gerade nicht daheim, aber am Sonntag kann ich Dir gern meine Sachen zur Verfügung stellen.

Gesendet von iPhone mit Tapatalk

Hi Alex,

wie genau kann ich Dir helfen?

Grundsätzlich ist die Lösung eine Kombination aus Geofency-Modul, Image-Map mit Script-Logik und Webhook-Funktionalität.

Wenn Du auch 4 Teilnehmer hats, dann ist eine Adaption ziemlich simple … Namen im Image-Map austauschen und fertig.

Melde Dich einfach mal.

Ciao Pitti

Moin in die Runde,

ich habe da mal ein bischen rumgespielt, nach dem mir es zu unkomfortabel war so viele Bilder zu erstellen, lasse ich das dynamisch machen.

Meine grafischen Fähigkeiten sind nicht so toll, falls einer eine neue Vorlage generieren möchte / könnte?

Die einzelnen Farben / Zustände können nun im Script eingestellt werden. :wink:

Hierzu die Vorlage.
vorlage.png

und das Script


<?


$id_anwesenheitskreis = 46115 /*[Wohnung\Übersicht Anwesenheit \Anwesenheitskreis\Anwesenheitskreis]*/;

$lesen = "D:\IP-Symcon\webfront\img\geo\\vorlage.png";			// Biite die doppelten \\ vor dem Bildnamen lassen
$schreiben = "D:\IP-Symcon\webfront\img\geo\\anwesenheit.png";	// Biite die doppelten \\ vor dem Bildnamen lassen

// Grafik zur Beareitung einlesen
$lesen = imagecreatefrompng($lesen);

// Anzeigefarben setzen
$rot = 		array("178", "0", "0");
$gelb = 		array("178", "200", "0");
$gruen = 		array("0", "178", "0");
$blau = 		array("0", "0", "178");
$hintergrund = 	array("10", "16", "22");


// Haus (1,1,1)
if (GetValue($id_alarm_status) == 0) {
	farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $rot);
} 
elseif (GetValue($id_alarm_status) == 1) {
	farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $gelb);
} 
elseif (GetValue($id_alarm_status) == 2) {
	farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $gruen);
} 
elseif (GetValue($id_alarm_status) == 3) {
	farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $blau);
} 

// Mann (2,2,2)
if (GetValue($id_anwesenheit_1) == true) {
	farbesetzen ($lesen, $schreiben, array("2", "2", "2"), $gruen);
} else {
	farbesetzen ($lesen, $schreiben, array("2", "2", "2"), $hintergrund);
}

// Frau (3,3,3)
if (GetValue($id_anwesenheit_2) == true) {
	farbesetzen ($lesen, $schreiben, array("3", "3", "3"), $gruen);
} else {
	farbesetzen ($lesen, $schreiben, array("3", "3", "3"), $hintergrund);
}

// Mädchen (4,4,4)
if (GetValue($id_anwesenheit_2) == true) {
	farbesetzen ($lesen, $schreiben, array("4", "4", "4"), $gruen);
} else {
	farbesetzen ($lesen, $schreiben, array("4", "4", "4"), $hintergrund);
}

// Junge (5,5,5)
if (GetValue($id_anwesenheit_2) == true) {
	farbesetzen ($lesen, $schreiben, array("5", "5", "5"), $gruen);
} else {
	farbesetzen ($lesen, $schreiben, array("5", "5", "5"), $hintergrund);
}


SetValue($id_anwesenheitskreis, "<img src='/img/geo/anwesenheit.png#".time()."' >");


function farbesetzen($lesen, $schreiben, $farbealt, $farbeneu){

	// ggf anpassen 
	$zielbreite = 200;
	$zielhoehe = 200;

		$farbeneu = imagecolorallocate($lesen, $farbeneu[0], $farbeneu[1], $farbeneu[2]);
		$bildbreite = imagesx($lesen);
		$bildhoehe = imagesy($lesen);
			
			for ($ix = 0; $ix <= $bildbreite - 1; $ix++){
				for ($iy = 0; $iy <= $bildhoehe - 1; $iy++){
					$rgb = imagecolorsforindex($lesen, imagecolorat($lesen, $ix, $iy));
					$pixel = array($rgb["red"], $rgb["green"], $rgb["blue"]);
						if($pixel == $farbealt){
							imagesetpixel ($lesen, $ix, $iy, $farbeneu);
						}
				}
			}
	
	# wenn Bildgröße angepasst werden soll 
	#$bildneu = ImageCreate($zielbreite,$zielhoehe);
	#ImageCopyResized($bildneu,$lesen,0,0,0,0,$zielbreite,$zielhoehe,$bildbreite,$bildhoehe);
	#imagepng($bildneu, $schreiben);
	
	# wenn in Original Größe ausgegeben wird
	imagepng($lesen, $schreiben);
}


?>


Grüße
dzvo