FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bgewehr am 20 September 2015, 13:12:57

Titel: "Zeichnen" mit xy Koordinaten
Beitrag von: bgewehr am 20 September 2015, 13:12:57
Hallo!

Habt Ihr eine Idee, wie ich aus


[[0.0,0.0],[-0,0.0],[-2055.2159780308789,-2379.5727991890531],[3029.093069683634,-881.48483755857296],[-2.9615713921438722,20.137830920613652],[-17.078829271915453,-11.073243878771573],[17.176172939016574,-10.921640099682053],[2.24367588326204,16.254549148252529],[-3047.513387283966,-916.18078221703888],[10.859218521039264,-12.350338129249328],[6.7111012464488908,15.013813601293448],[-18.227506874466446,-0.16134362135021596],[5.4634119090647051,-11.663820042955651],[8.3322999693061242,9.8217282035324693],[-12.398332455841896,3.4892578003038803],[2.1583082950074672,-13.824679453991763],[10.632205672784698,7.0279521840086234],[-10.041314300308732,6.2607490505500971],[-1.5142218208174711,-11.7359321670206],[11.988903259268978,3.7202725060832216],[-8.3719783818863149,9.3532992496154694],[-4.7200282017852517,-10.815415945537026],[11.798654693912495,0.20889163324877508],[-4.7058489854122492,9.8192881683750244],[-6.9703292962153833,-8.3652820818796538],[10.507209958036052,-2.8569168179776026],[-1.8587277133479496,11.251385134340827],[-9.4573518929685871,-6.3723646573463535],[10.724305196044565,-6.5554855904796776],[1.4980004975159784,12.479627709765104],[-168.63102554222829,-53.968739076009768],[119.24890339394096,-130.87683756960436],[69.885628570722176,164.08169350437319],[-178.28174494254137,-4.7352554556896909],[78.059814763288486,-159.24839164311831],[112.31980777201746,137.25030311025165],[-171.6892140344342,45.054233292284664],[27.941317856605288,-160.29997032050332],[134.13265949768234,92.11529397660793],[-139.57908171183632,83.632993948552453],[-18.045374500496695,-162.47432536672895],[155.49164785537815,51.285251454096944],[-112.7979041208733,121.61687347956898],[-62.606809745936062,-150.67766904146177],[162.15728039442683,5.743692167400515],[-73.854534270071014,147.35459721909342],[-101.80504157201713,-126.6729649946094],[157.54924711272324,-39.856508680763127],[-29.47417819162149,160.67376980953787],[-132.69566956395519,-92.867549189035529],[140.90622948356753,-82.7420986850464],[16.632725504194642,162.88395259138633],[-154.29987730059315,-52.410997923278273],[111.86859136725715,-118.49381040289667],[60.851494763935925,150.19134468179968],[-161.8917602958264,-7.1695453587490352],[75.118634190315902,-146.62233380242463],[102.06292885767891,129.32160115495208],[-164.07741390847622,39.966139878149775],[31.368473087813157,-162.86382151455285],[135.0377629833724,96.298535973458755],[-143.75954884767961,82.71515929560077],[-15.29200366916894,-164.11588642673345],[158.26873892729921,55.32638703428546],[-116.17117639473867,120.88945611163805],[-60.740692211040262,-153.81598899710389],[165.141529913022,8.778682100405204],[-76.485559666072035,146.0893444962376],[-101.00944134050583,-130.34274115903642],[158.76356914771551,-37.186290591013226],[-32.374457559466151,160.42744999881143],[-132.40373937782337,-96.199386766030059],[140.79580615726542,-79.359452914207367],[13.569616997731933,161.0504495270082],[-153.0747345769737,-55.035968747937787],[113.74563131485954,-116.28741797210469],[58.256688351666938,151.43581131745159],[-161.94353012547714,-10.046877006151016],[75.962828177835505,-142.01744463726271],[97.524406331641316,128.17291451681302],[-157.17964529756512,35.350705261740174],[33.265506829210231,-157.63413118283293],[129.52255329430875,95.86907825694361],[-140.65150858454686,77.645728562709422],[-12.071380833034601,-160.20607914784836],[149.59002728108976,55.283146720817236],[-112.52023969209198,113.01592026323883],[-55.940143690309206,-149.34558211483909],[159.49080914690299,11.312681863470392],[-76.658188193778912,140.31684558927736],[-96.354276442472724,-128.98852659900709],[157.38646265583702,-33.936528337737116],[-34.637480656670348,157.2336844212906],[-127.79065990200425,-96.349595741775232],[140.7901183421817,-76.104138750712494],[10.572351549973506,159.09492641870941],[-149.06425786593937,-56.593438279958889],[113.49288715634282,-111.99256579964771],[54.721071158199422,150.122997050745],[-159.27845558055759,-12.715481118347752],[59.841220268278946,-107.26703199444405],[71.213153258123484,97.113463607376929],[-117.94015101723225,24.340476347408636],[26.998011571820115,-117.59107365552028],[95.690123583957714,73.48437575959278],[-106.64029600835833,56.430492639528175],[-6.7761614014881655,-117.70793304714313],[110.20569667296053,42.960350146281598],[-84.925487883470609,82.33194259592193],[-40.14712462585247,-113.24592292042207],[119.68132521955165,10.621255458457554],[-59.462885141919834,104.40591920202971],[-69.149286846540576,-96.070723231862019],[116.13311839869316,-22.897741038654864],[-27.499020960879744,115.09257578726768],[-93.183986084298255,-72.880048229842458],[105.04786134816099,-54.403157249560429],[5.7533157121382041,118.15945180500506],[-107.97229647982263,-43.194505203885022],[84.208982049709519,-80.203674660746501],[37.930984229748866,110.07895374013809],[-115.87936847790036,-11.318462012301532],[58.514680996568885,-100.65866941814151],[66.812295063736073,94.578392672038063],[-114.57918274014141,21.539546861148729],[28.095909895633053,-113.1501703203261],[90.645014988237421,72.196467539282764],[-103.19827269306748,52.292083381003934],[-4.6034221433514864,-115.59910888812547],[110.10884594835417,45.183882739775555],[-86.907036226535467,81.318560426509194],[-36.770866371929536,-109.8597825649783],[115.19729731573985,12.282146804026116],[-58.32689224002916,98.32219994562864],[-63.589417118560334,-91.728391545141264],[109.87092517062115,-19.64921339618369],[-27.555443925676386,106.91821630172636],[-85.753348144629044,-69.54977173988344],[98.927413033102653,-49.032381317469699],[3.2845909160260001,106.0923675531471],[-97.836388940976803,-41.163333070921411],[78.144016597940649,-71.832385874746478],[32.55882832660447,100.21399296729579],[-104.67357934688697,-12.098077333257162],[54.905433644796908,-90.715022473413541],[58.847115943694739,86.513119385003151],[-103.15519798333783,17.507370151819856],[27.155012367479021,-101.63348539731415],[81.114594257978325,66.986436306520702],[-94.666175964004381,45.881098276263664],[-2.3131507974036776,-104.65791119943952],[96.127779737397091,41.449716597339567],[-77.693392086632912,70.159574323922641],[-31.169108533039083,-98.907130600145337],[102.69187648862012,12.791113241648199],[-54.365825896695746,88.054477735574835],[-57.586533931189472,-86.292566895412889],[103.07196662867281,-16.556014668303135],[-27.838731312838533,100.61280716335715],[-79.901966690025546,-67.183388166014353],[94.170656192791711,-44.615967179047594],[1.3505734118133419,101.94724302994734],[-93.262402611954343,-41.196949753514254],[77.889238490793929,-69.0946848612069],[30.414258952617004,99.578018664303755],[-100.81973347931265,-13.465190112329495],[54.199675869801794,-86.071627957238235],[55.597711402249089,84.931008950943763],[-100.06115624214088,15.165132126677301],[27.850518011157131,-97.2962736565174],[76.710505775263272,65.667693560207596],[-91.634299088181265,42.425262573515944],[-0.44898067840159561,-102.14329033184143],[93.065472955239557,42.098350170547107],[-77.178371914674003,67.252843342064892],[-29.035302075499875,-98.165152994209379],[99.749381071366884,14.22199743765813],[-53.951942846914754,84.019601731152008],[-54.622870127438105,-85.075720504395036],[101.31275726610241,-14.438667267481382],[-29.031940445044015,98.132035194000949],[-75.685453342637345,-65.959949843552508],[91.473474647468194,-41.371563506392768],[-0.44298642644337,99.416008104829174],[-90.963871323644682,-42.12152471367358],[76.155321327533798,-65.184474868554986],[27.664653534728703,96.668981098509505],[-98.992975650112029,-15.009345438589305],[54.843572842829452,-83.767966409552017],[53.50823227161689,84.984945596393871],[-100.53278746992378,13.420697383638709],[29.632995877726138,-96.999185718472589],[75.869432486063289,67.311111185143531],[-90.601778114463428,40.015139929263498],[1.3222779861760079,-99.359130412268556],[89.748704359943844,42.527570094934774],[-75.599461019744197,63.557964007285271],[-26.332616578068237,-95.191841033670727],[97.851009740098689,15.723445989782673],[-54.743020029715112,82.020893197347974],[-51.450149227047625,-83.343295608636765],[97.515207888262808,-12.140346588928164],[-29.541459363853193,93.722494436737136],[-72.85217577019381,-65.795778126704278],[90.081302702653673,-38.836071836959626],[-2.184199390365122,98.554574422121917],[-88.952992553362378,-43.11875814769288],[75.828012861194125,-62.612957815135658],[25.373992844680281,94.990599817177085],[-98.187715189200276,-16.67038541841988],[55.777355347262223,-81.989531668403728],[51.552999436062123,85.187708043933455],[-99.938171796035817,11.544657637215151],[31.101535949330191,-95.708904882161505],[74.681058749291864,68.657435773319804],[-93.508316029638323,39.335719850843006],[3.1223745458163301,-100.65657531456986],[90.535129421974574,44.879629327051504],[-78.77701758559806,63.883784914909711],[-25.204532588104748,-97.820818830943949],[103.57065459759202,18.52892282445347],[-57.556257841259459,83.014807372249265],[-52.853699930551365,-89.108229820975666],[101.28059563564079,-10.792195460736062],[-32.758744406345443,97.853223465250153],[-75.157149518429406,-70.332737940249984],[98.070717594824316,-40.237050276881355],[-4.8313461039012369,121.13894618739353],[-108.43256217346104,-54.95259090082336],[103.36669870659232,-82.318782999747086],[29.915524159913385,120.50933446160822],[-140.78617345931517,-26.47494261414538],[82.661317909071244,-116.99904164254562],[75.5382656475294,129.96117115529651],[-219.45382303534845,21.421690697505149],[71.3387146349598,-206.99052221433152],[158.52856880811791,151.00656066535561],[-100.55663259188259,40.220823454273805],[5.2328172211721045,-107.33642992233902],[97.492641229269651,50.497844424788042],[-84.730178278284455,66.260015196918957],[-24.989865669405493,-104.61882879668872],[104.53822076953388,20.618145191072063],[-126.1771426260236,175.27856999953076],[-106.09111490827307,-186.30265512205932],[213.86354664785699,-18.966568886170776],[-71.740087805812806,202.32376622727861],[-153.60140694119153,-148.92852799788946],[143.93976356505388,-56.10055713019873],[-12.242798272761988,212.44503858227392],[-136.61824286754191,-72.304366849817882],[120.45248309009588,-92.488864589834577],[34.007811779227211,148.16353550455617],[-145.90567249863147,-30.12116906397101],[87.236755794200505,-118.94983090655026],[72.080560841400711,129.22469720401668],[-147.49978202063298,11.766219552023772],[49.22041557521073,-135.00707959799769],[102.27866984654965,100.93876631600482],[-133.68879443922484,50.746799086169929],[9.4527864590313211,-142.11797547988976],[125.29376222805753,67.7373403159703],[-113.23770775444352,85.366481994607767],[-30.500008554996249,-138.49174770996862],[137.11581684082626,29.574312013252243],[-83.952159232677346,112.37180304309172],[-67.448781680291958,-123.47743652799922],[139.13087502641218,-9.8601217080856429],[-48.934524693884605,130.61843410259993],[-98.404173638905831,-98.849587738935256],[131.94653665861148,-48.753699780125842],[-10.527095285233923,139.59866666351235],[-122.55589098444742,-67.66580417303166],[112.69392230009147,-83.402466454591718],[28.940428874802947,137.17996614167399],[-136.39789727677382,-30.685396839938026],[84.51761440748642,-111.06464734217049],[66.667517279633756,124.65732662683033],[-139.40450899835824,8.6401331639374028],[51.46750306363775,-133.76354362970403],[100.21280744066146,102.4645436277457],[-95.622318046831694,34.37321255307522],[12.492691798356873,-148.16223813474457],[127.31637285249771,71.771894884027986],[-122.6440624649548,89.097089819961823],[-13.050708004047191,-64.691214224697063],[54.851264140623357,12.850988967378417],[-34.511551252934538,44.528214935927849],[-70.660733780434825,-134.9835842157953],[102.60080739894214,-5.4479056693621057],[-19.039845772478827,48.206825411100439],[-35.910970715185968,-37.374000662882679],[51.692020720683047,-18.066607886912546],[-5.0835508346034413,54.521783148013228],[-2722.8736439475279,-1566.8826319879763],[2568.1249695001957,-1831.1554514731688],[594.86276159540182,3089.5059104361753],[-3056.8300309399724,-744.78093268859561],[1970.3366390753333,-2496.2589792395229],[1444.0333802833302,2818.994319003717],[-3164.2342035796792,139.94026884426037],[1183.807712943476,-2921.3230971042922],[2163.7137403018287,2292.1326726279494],[-15.006738863878345,5.0963258628031713],[1.1973921457291765,-11.719046464910146],[10.157807841841807,5.9656297107341514],[-12.026900426438198,8.4159900230185958],[-2.7184830172149166,-14.824411511943175],[13.968928871643705,3.534729119107352],[-9.0272456524166937,11.230944737529002],[-6.4537775314344961,-12.878517812748607],[14.890567510716213,-0.52653250901152859],[-5.739855644615421,13.811930968331337],[-9.8313274793619794,-10.601259895885516],[14.395000357222795,-4.7468889925696987],[-1.6740999143824713,15.064739621675788],[-13.001657590354581,-7.7913984813638493],[14.645823205665121,-10.056685889126186],[2.6727914721568995,15.339331589964589],[-14.815084183434063,-3.8886902433611814],[9.3075835169689984,-11.372095063673081],[6.4978863333265631,13.258240766274037],[-13.954532653945973,0.36979771972691522],[5.2962078081721318,-12.432676961806033],[8.7320043308072695,9.5846207715014984],[-13.034477197713491,4.1706928531682994],[1.5153298428035666,-12.617567391103004],[10.737864294347965,6.5646632093381196],[-10.780259206326685,7.2627947772011057],[-2.0932202034084786,-12.675584123850236],[13.107164564944817,3.5646947151510369],[-7.9053389106692178,9.4862496208630809],[-5.6099102239506333,-11.707525593625345],[12.980169289789865,-0.22902719177950201],[-5.5499889315627424,12.715086870916011],[-9.2412780564502466,-10.325746465420449],[13.234903319905488,-4.1060436307382888],[-1.5107415823903432,11.703399000797223],[-2682.6683882962975,-1672.865574949142],[11.649159211749657,-7.699155483847937],[1.7508204478264153,11.219022829225043],[-3042.0386544226649,-856.31766532476956],[2059.4147602389253,-2427.2458152598042],[8.5166229961885662,18.184964356181567],[-21.846034326136884,0.19205641007969582],[7.825111386992841,-17.503201059643857],[12.410841518862538,14.116736419345207],[-3027.398205872918,909.93449989160945],[23.815278322780909,-172.455564043409],[141.74802338408392,90.143889523527378],[-143.78960079297386,93.215231986161228],[-24.922783087602841,-169.53873791439213],[159.46427288564794,46.415518941008763],[-93.095574165491385,107.77490137910192],[-59.258011814899866,-129.50175030563426],[163.12990158953357,0.0098348908074321357],[-67.89493533363536,148.32950699499224],[-109.13351037172015,-126.37250169306998],[160.32575571350873,-46.645303355339522]]


eine x-y-polylinie in fhem zeichnen kann?

Können die Plots evtl. sowas? Oder SVG? Gibt es da schon was?

(Bevor Ihr die Daten genauer anschaut, sie werden noch inhaltlich besser, nur die Form und Menge bleibt etwa gleich...)

Vielen Dank!
Gruß, Bernd
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: justme1968 am 20 September 2015, 13:29:11
das geht mit logProxy. im wiki ist ein beispiel.

gruss
  andre
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: bgewehr am 20 September 2015, 20:51:45
Tatsache, das habe ich hinbekommen, vielen Dank!

Hast Du eine Idee, warum man im plot-Editor nicht auf speichern drücken darf? Der Plot ist danach sofort völlig kaputt:


set xrange [-200:200]
set yrange [-200:200]


#lp Func:logProxy_xy2Plot([[29,61],[17,62],[8,77],[-6,76],[-36,143],[-66,147],[-82,121],[-104,106],[-130,94],[-144,70],[-153,43],[-98,10],[-166,-12],[-161,-40],[-71,-32],[-60,-40],[-52,-51],[-40,-55],[-32,-65],[-19,-65],[-7,-63],[6,-97],[15,-62],[40,-92],[76,-113],[94,-98],[112,-82],[130,-64],[96,-28],[94,-10],[40,2],[31,7],[30,13],[29,20],[50,49],[67,92]])
#lp Func:logProxy_xy2Plot([[0,0]])
                                 
plot "<IN>" using 1:2 axes x1y1 title 'WORLD' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'RPiMower' ls l0 lw 1 with Points


nachher:


# Created by FHEM/98_SVG.pm, 2015-09-20 20:52:00
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title ''
set ytics
set y2tics
set grid
set ylabel ""
set y2label ""
set xrange [-200:200]
set yrange [-200:200]

#lp Func:logProxy_xy2Plot([[29,61],[17,62],[8,77],[-6,76],[-36,143],[-66,147],[-82,121],[-104,106],[-130,94],[-144,70],[-153,43],[-98,10],[-166,-12],[-161,-40],[-71,-32],[-60,-40],[-52,-51],[-40,-55],[-32,-65],[-19,-65],[-7,-63],[6,-97],[15,-62],[40,-92],[76,-113],[94,-98],[112,-82],[130,-64],[96,-28],[94,-10],[40,2],[31,7],[30,13],[29,20],[50,49],[67,92]])
#lp Func:logProxy_xy2Plot([[0,0]])

plot "<IN>" using 1:2 axes x1y1 title 'WORLD' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'RPiMower' ls l0 lw 1 with Points



EDIT:

Die Zeile


set terminal png transparent size <SIZE> crop


wird beim speichern automatisch eingefügt und macht den Plot kaputt. Wenn ich sie wegkommentiere, ist er wieder in Ordnung.

Wenn ich die Parameter size <SIZE> rausnehme, ist es auch OK.

Kann ich was dagegen machen? Ein Feld ausfüllen oder so?
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: dev0 am 20 September 2015, 20:58:57
Hängt es vielleicht hiermit zusammen?
http://forum.fhem.de/index.php?topic=41246.msg334645#msg334645
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: bgewehr am 20 September 2015, 21:02:59
Nein, da geht es nur um die Namen der gplot-Files...

Bei mir geht es um den Inhalt.
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: justme1968 am 20 September 2015, 21:20:48
irgendwo hatte ich einen patch gepostet der den plot editor so weit ergänzt das das nichts mehr kaput gehen sollte. rudi gefällt das aber noch nicht so ganz.

das mit dem <size> ist mir aber neu. ich schau es mir an wenn ich dazu komme.

dagegen tun kannst du vermutlich nur den plot editor für diesen plot nicht zu verwenden.

gruss
  andre

ps: ich vermute mal du willst die position dynamisch anzeigen. statt dem hart kodierten koordinaten kannst hier auch perl code stehen der die daten zurück liefert. z.b. auch aus einer sub zurück geben.

pps: der punkt würde zur zeit nur beim seiten neu aufbau aktualisiert. theoretisch wäre das der erste fall wo longpollsvg für logproxy sinnvoll wäre. ist aber bis jetzt noch nicht eingebaut. ich weiss aber nicht wie sehr das ganze dan flackert.

ppps: um die fläche zu schliessen musst du die koordinaten des ersten punkte noch mal ans ende hängen. das wird absichtlich nicht automatisch gemacht.
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: bgewehr am 20 September 2015, 21:45:27
Also, die Story ist ganz lustig:

Da war ich im Baumarkt... und sehe so ein Möbelrollbrett für 11€.

Dann kam ich bei den Rasenmähern vorbei, und der eine Gedanke fügte sich mit dem anderen zusammen - und dann ging es los.

Ergebnis ist ein Möbelrollbrett mit Rasenmäherreifen, das mit einem PI, einer Motorsteuerung, der PiCamera, einem Ultraschallsensor und einem Kompass die Gegend abfährt.

Um die Umgebung zu vermessen, dreht er sich um die eigene Achse und loggt aktuellen Winkel und Entfernung bis zum nächsten Gegenstand. Aus diesen Daten möchte ich in fhem die aktuelle "WELT" des Gefährts zeichnen und seinen aktuellen Ort darin so gut es geht annähern. Wenn der Plot frisch ist, ist es natürlich der Ursprung.

Ist nur ne Spielerei, aber eine verdammt lustige!

http://github.com/bgewehr/RPiMower

Wie der Name schon sagt, vielleicht soll er mal den Rasen mähen... deswegen schaut er schon die ganze Zeit mit seiner Kamera auf den Boden und schaut nach, ob er noch auf grünem Grund ist. Wenn nicht, soll er umdrehen, was er auch schon brav macht. (Unser Garten ist geometrisch sehr einfach, da geht sowas simples.)
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: justme1968 am 20 September 2015, 21:54:37
lach. sehr cool.

ich würde mich aber vermutlich lieber einen staubsauger automatisieren als etwas scharfes frei laufen zu lassen:) zumindest denke ich bei rasenmäher immer an etwas lautes gefährliches.

aber eigentlich könnte man die schneidevorrichtung sehr klein machen wenn das ding einfach leise vor sich hin fährt. ich glaube das gefällt mir.

wie lange hällt der akku durch?
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: bgewehr am 20 September 2015, 21:58:54
Im Moment habe ich 11,1 V LiPo mit 4.000 mAh, das hält mehr als zwei Stunden Fahrbetrieb aus.

Wenn ein Propeller drunter kommt, dann natürlich noch weniger.

Akkus gibt es bis 8.000 mAh für so 30 - 40€ in der Bucht, das sollte also kein Problem sein.

Als Mähmesser sind runde Scheiben an z. B. Festplattenmotoren oder Modellflugzeugmotoren mit den hintersten Stücken von den schmalen Cuttermessern sehr beliebt in der Szene... Klein und scharf muss es sein, um den mulchenden Schnitt zu machen.

Einer hat sogar die Platten drin gelassen und die Messer gleich da dran geschraubt. ;-)
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: justme1968 am 20 September 2015, 22:07:36
das klingt nach spaß. und nach sehr viel zeit :)

hast du vielleicht noch ein paar links auf die szene?
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: bgewehr am 20 September 2015, 22:08:55
Ja, aber erst morgen...
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: justme1968 am 20 September 2015, 22:09:26
keine hektik.

danke
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: bsl02 am 21 September 2015, 02:52:06
Zitat von: bgewehr am 20 September 2015, 21:45:27
...
Wie der Name schon sagt, vielleicht soll er mal den Rasen mähen... deswegen schaut er schon die ganze Zeit mit seiner Kamera auf den Boden und schaut nach, ob er noch auf grünem Grund ist. Wenn nicht, soll er umdrehen, was er auch schon brav macht. (Unser Garten ist geometrisch sehr einfach, da geht sowas simples.)

Obercool - eigenen Thread dafür aufmachen?
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: bgewehr am 21 September 2015, 20:30:25
Zitat von: justme1968 am 20 September 2015, 13:29:11
das geht mit logProxy. im wiki ist ein beispiel.

gruss
  andre

Wenn ich nun den Wert aus dem Reading eines Device holen möchte, wie ist denn dann die Funktionssyntax für logProxy_xy2Plot?

Ich tue mich noch etwas schwer mit der Notation...

EDIT:

Ich habe bisher:


#lp Func:logProxy_xy2Plot({ReadingsVal("RPiMower_listen","Cartesian",0)})


aber das tut nichts außer Fehler beim Speichern der gplot-Datei.
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: justme1968 am 21 September 2015, 20:38:40
schau dir das beispiel zu den spinnennetz diagrammen im wiki an. da siehst du wie du perl code mit {...} einbindest.

dein rückgabewert muss genau so ein array sein wie du es hingeschrieben hast. kein string sondern eine echte referenz auf ein array. 

im per code um plotfile dürfen keine leerzeichen vorkommen. am besten nur eine eigene sub aufrufen.

gruss
  andre
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: bgewehr am 21 September 2015, 20:56:36
Also analog:

#logProxy Polar::[map{ReadingsVal($_,"temperature",0)}devspec2array("MAX.*")]


dann so:

#lp Func:logProxy_xy2Plot([map{ReadingsVal($_,"Cartesian",0)}devspec2array("RPiMower_listen")])

??


{ReadingsVal("RPiMower_listen","Cartesian",0)}


ergibt jedenfalls


[[-112, 23], [-113, 19], [-117, 16], [-114, 11], [-114, 7], [-114, 3], [-116, 0], [-159, -6], [-198, -14], [-124, -13], [-223, -32], [-196, -35], [-129, -28], [-107, -27], [-106, -31], [-194, -63], [-119, -44], [-124, -51], [-116, -52], [-90, -44], [-88, -47], [-83, -48], [-82, -51], [-79, -54], [-77, -56], [-76, -59], [-73, -61], [-74, -67], [-69, -66], [-68, -71], [-66, -73], [-64, -76], [-61, -78], [-58, -79], [-55, -82], [-53, -85], [-41, -71], [-39, -72], [-35, -72], [-34, -75], [-30, -73], [-25, -69], [-22, -68], [-20, -69], [-18, -70], [-17, -76], [-14, -75], [-11, -77], [-9, -82], [-7, -91], [-4, -94], [0, -96], [1, -37], [6, -95], [3, -38], [13, -93], [12, -73], [8, -39], [9, -39], [27, -98], [32, -99], [14, -41], [16, -41], [41, -94], [43, -90], [46, -88], [48, -85], [51, -83], [54, -81], [56, -79], [59, -77], [62, -75], [65, -73], [68, -71], [70, -69], [72, -66], [76, -65], [78, -62], [80, -59], [79, -54], [81, -51], [85, -50], [87, -47], [94, -46], [100, -45], [102, -42], [102, -38], [112, -37], [113, -33], [113, -29], [85, -19], [82, -15], [81, -12], [77, -9], [77, -6], [76, -3], [79, 0], [76, 2], [76, 5], [77, 8], [77, 10], [76, 13], [77, 16], [76, 19], [75, 21], [75, 24], [74, 27], [73, 29], [72, 32], [72, 35], [28, 15], [28, 16], [27, 17], [27, 18], [26, 19], [25, 20], [25, 20], [63, 56], [24, 24], [23, 24], [22, 25], [22, 26], [21, 26], [20, 28], [113, 167], [107, 171], [21, 37], [20, 37], [18, 38], [37, 84], [34, 85], [31, 87], [28, 88], [58, 205], [51, 207], [44, 209], [7, 44], [6, 44], [4, 44], [3, 45], [1, 45], [0, 100], [-4, 100], [-7, 100], [-12, 107], [-14, 99], [-18, 98], [-21, 98], [-24, 95], [-28, 94], [-31, 93], [-33, 90], [-36, 88], [-38, 84], [-41, 83], [-44, 82], [-47, 80], [-50, 79], [-53, 77], [-56, 75], [-60, 76], [-63, 74], [-63, 69], [-65, 67], [-70, 67], [-73, 64], [-75, 62], [-84, 65], [-83, 60], [-85, 57], [-87, 54], [-89, 50], [-86, 45], [-89, 43], [-90, 40], [-91, 36], [-92, 33], [-93, 30], [-95, 27], [-99, 24]]


Da sind aber auf jeden Fall Leerzeichen drin...

Ich muss wohl doch ne Funktion machen, oder?

EDIT:


#lp Func:logProxy_xy2Plot({my $tmp=ReadingsVal("RPiMower_listen","Cartesian",0);;$tmp=~ s/\ //g;;$tmp})


geht leider auch nicht... wegen der Leerzeichen warscheinlich.

EDIT2:


define strConvert notify RPiMower_listen:Cartesian:.* {
my $tmp=ReadingsVal("RPiMower_listen","Cartesian",0);;
$tmp=~ s/\ //g;;
fhem("SetReading RPiMower_listen Cartesian1 $tmp");;
}


das macht jetzt ein Reading ohne Leerzeichen.

Ich bekomme aber dennoch die "Daten" nicht in die Funktion, weil es ja nach wie vor ein String ist, oder?


#lp Func:logProxy_xy2Plot([map{ReadingsVal("RPiMower_listen","Cartesian1",0)}])


tut es jedenfalls nicht, nicht mit und nicht ohne map.
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: Prof. Dr. Peter Henning am 22 September 2015, 04:49:24
Das mit den Leerzeichen bezieht sich auf die Codezeile, nicht auf den String - und gilt in der Form nur, weil das innerhalb eines Parameters für logProxy steht.

Es wäre deshalb wirklich sinnvoll, eine eigene Funktion zu definieren. Denn es müssen mit dem regulären Ausdruck auch die Klammern herausgenommen werden, und dann mit dem Perl-Kommando split() der String in ein Array umgewandelt werden.

Betreffend das Gerät: Ich tippe mal, dass das große Problem die Wiederkehrgenauigkeit sein wird. Sprich: es wird sich selber an den gleichen physischen Positionen unterschiedliche interne Koordinatenwerte zuweisen.

LG

pah
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: bgewehr am 22 September 2015, 06:58:31
Hallo, Peter,

eine Funktion also, die eine Objektreferenz liefert.

Nun muss ich ja ein Objekt Array von Koordinatenpaaren haben. Kann ich bitte ein bisschen Perl bekommen, um den Weg zu finden?

Wiederkehrgenauigkeit ist nicht gegeben, bisher weiß er nicht mal irgendwelche Koordinaten. Er fährt rum u d weicht Hindernissen aus.

Was ich jetzt versuche ist ein kleiner Trick zum Aufsuchen der Ladestation.

Dazu soll die Umgebung gescannt werden, dann ein geeigneter Weg zum Westzaun gefahren werden, an dem es dann nordwärts zur Station führt.

Induktionsschleifen möchte ich vermeiden, das hat ja jeder...

Gruß Bernd
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: bgewehr am 22 September 2015, 08:01:39
Das hier klingt auch hilfreich, geht aber nicht im notify, weil da immer noch @ durch den Devicenamen ersetzt wird....

http://stackoverflow.com/questions/8608627/perl-initializing-an-object-from-a-string
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: marvin78 am 22 September 2015, 08:27:01
Das geht schon, man muss es nur maskieren. Oder eben den featurelevel in FHEM entsprechend setzen. Dann wird @ nicht mehr durch den Devicenamen ersetzt. Die Funktion ist ja schon lange deprecated.
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: justme1968 am 22 September 2015, 10:06:42
leerzeichen dürfen in der columnspec zeile im plotfile nicht auftauchen. im array ist es egal. aber da können eigentlich keine auftauchen. es ist ja ein numerisches array.

du brauchst etwas in der art:use strict;
use warnings;

sub
reading2ArrayRef()
{
  my @a = ();

  my ($x,$y) = split( ',', ReadingsVal(...) );

  push @a, [$x,$y];

  return \@a;
}


wenn beide coordinaten in deinem reading stecken musst du zuerst mal splitten um x und y zu bekommen. sonst steckst du nur wieder einen string in dein array. es müssen aber jeweils koordinatenpaare sein.

alternativ zum manuellen splitten und zusammenbauen kannst du das reading mit einem string im passenden format auch per eval in ein entsprechendes perl array konvertieren.

gruss
  andre
Titel: "Zeichnen" mit xy Koordinaten
Beitrag von: bgewehr am 22 September 2015, 16:24:54
Wenn der Dumper ein sauberes Objekt zeigt, ist dann der Job gemacht?


{Dumper getObjectFromReading("RPiMower_listen","Cartesian1")}



sub getObjectFromReading($$) {
       my ($device, $reading) = @_;

       #my @a = ();

       #my ($x,$y) = split( ',', ReadingsVal($device, $reading, 0) );
       #push @a, [$x,$y];

       #return \@a;
       my @object1 = eval(ReadingsVal($device, $reading, 0));
       return \@object1;
}


Habe das Gefühl, dass ich nun ein sauberes Objekt liefere, bekomme aber kein Chart...


# Created by FHEM/98_SVG.pm, 2015-09-21 20:53:26
set terminal png transparent crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'RPiMower WORLD'
set ytics
set y2tics
set grid
set ylabel "Süd - Nord"
set y2label ""
set xrange [-200:200]
set yrange [-200:200]

#lp Func:logProxy_xy2Plot({getObjectFromReading("RPiMower_listen","Cartesian1")})
#lp Func:logProxy_xy2Plot([[0,0]])

plot "<IN>" using 1:2 axes x1y1 title 'WORLD' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'RPiMower' ls l0 lw 1 with points
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: justme1968 am 23 September 2015, 09:52:31
eigentlich sollte es genau so gehen.

ich schaue es mir an.

gruss
  andre
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: justme1968 am 23 September 2015, 12:22:13
eval liefert schon eine referenz zurück die kannst du direkt verwenden. also so:

sub getArrayRefFromReading($$) {
       my ($device, $reading) = @_;

       my $points = eval(ReadingsVal($device, $reading, 0));

       return $points;
}


und im plot file musst du die {} weg lassen da sowieso der ganze string durch ein eval geschickt wird:#lp Func:logProxy_xy2Plot(getArrayRefFromReading("RPiMower_listen","Cartesian1"))

gruss
  andre
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: bgewehr am 23 September 2015, 12:34:38
 TOP!

Läuft.

Vielen Dank!
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: frank am 23 September 2015, 13:18:02
cooles spielzeug!
wie sieht denn dazu die rasenflaeche aus?
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: bgewehr am 23 September 2015, 13:19:58
Wie schon gesagt, geometrisch einfach. Ist ein Rechteck mit einem Ausschnitt in Form eines Viertelkreises, an drei Seiten durch Zaun begrenzt, an einer durch abfallende Böschung.
Titel: Antw:&quot;Zeichnen&quot; mit xy Koordinaten
Beitrag von: bgewehr am 28 September 2015, 08:53:41
Zitat von: justme1968 am 20 September 2015, 22:07:36
hast du vielleicht noch ein paar links auf die szene?

Hier ein paar meiner Inspirationen:
http://www.ardumower.de/index.php/de/
https://www.youtube.com/watch?v=XRfuXkmaamI
https://sites.google.com/site/diyrobotlawnmower/

und ansonsten:
https://www.google.de/search?q=diy+robot+mower&safe=off&biw=1920&bih=947&source=lnms&tbm=isch&sa=X&ved=0CAcQ_AUoAjgUahUKEwjM7LydkpnIAhUGvBoKHTPWAfE
Titel: Antw:"Zeichnen" mit xy Koordinaten
Beitrag von: justme1968 am 29 September 2015, 17:30:24
danke
  andre